Submission
Status:
----PPPPPP
Subtask/Task Score:
60/100
Score: 60
User: ChanakanStudy
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.006 second
Submitted On: 2026-10-12 11:09:41
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <cmath>
#include <queue>
#include <stack>
#include <climits>
#include <map>
#include <numeric>
#include <iomanip>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s = "",m;
cin >> m;
int n;
cin >> n;
if(m[0] == '0' && m[0] == '1') {
s = m;
}
else {
for(int i = 0;i<m.size();i++) {
string temp1 = "";
int sum = 0;
sum = m[i];
while(sum > 0) {
int temp;
temp = sum % 2;
temp1.push_back(temp + '0');
sum /= 2;
}
s += "0";
reverse(temp1.begin(),temp1.end());
for(auto it : temp1) {
s += it;
}
}
}
// cout << s;
// return 0;
int width = (s.size() * (n-1)) +1;
char graph[n][width];
// cout << width;
for(int i = 0;i<n;i++) {
for(int j = 0;j<width;j++) {
graph[i][j] = '_';
}
}
int currentx = 0 ,currenty= 0,count=0;
for(int w = 0; w<s.size() ;w++) {
if (s[w] == '1') {
int targetx = 0 , targety = currenty + n - 1;
while(currentx != targetx) {
graph[currentx][currenty] = 'x';
currentx--;
}
while(currenty != targety) {
graph[currentx][currenty] = 'x';
currenty++;
if(currenty == targety) {
graph[currentx][currenty] = 'x';
}
// cout << currentx << " : " << currenty << '\n';
}
count++;
}
else {
int targetx = n-1 , targety = currenty + n - 1;
while(currentx != targetx) {
graph[currentx][currenty] = 'x';
currentx++;
}
while(currenty != targety) {
graph[currentx][currenty] = 'x';
currenty++;
if(currenty == targety) {
graph[currentx][currenty] = 'x';
}
// cout << currentx << " : " << currenty << '\n';
}
}
}
for(int i = 0;i<n;i++) {
for(int j = 0;j<width;j++) {
cout << graph[i][j];
}
cout << '\n';
}
return 0;
}