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;
}