Submission

Status:

-PPP------

Subtask/Task Score:

30/100

Score: 30

User: Nuttykub

Problemset: กราฟสัญญาณดิจิทัล

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-06 14:15:10

#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
    string s;
    vector<int> ans;
    int n;
    cin >>s>>n;
    int total=0;
    if(int(s[0])<65) for(auto q:s) ans.push_back(q-'0');

    else{
        vector<int> temp;
        for(int i=0;i < s.length();i++){
        int total = s[i];
        int a,ct=0;
        while(total!=0){
            a = total%2;
            temp.push_back(a);
            total/=2;
            ct++;
        }
        if(ct!=8){
            for (int i=ct;i<8;i++) temp.push_back(0);
        }
            reverse(temp.begin(),temp.end());
            for(auto t:temp) ans.push_back(t);
            temp.clear();
        }
    
}
    vector<vector<char>> matrix(n,vector<char>((n-1)*(ans.size())+1,'_'));
    matrix[0][0] = 'X';
    int row;
    for(int i =0;i<ans.size();i++){
        int j=i*(n-1);
        if (ans[i]==1) row = 0;
        else row = n-1;
        for (int k=0;k<n;k++) matrix[row][j+k]='x';
    }
    for(int i=1;i<n-1;i++){
        for (int j=0;j<(n-1)*ans.size()+1;j++){
            if(matrix[n-1][j]=='x' and matrix[0][j]=='x') matrix[i][j] = 'x';
        }
    }

    //output

    for(int i = 0;i<n;i++){
        for (int j = 0;j <(n-1)*ans.size()+1;j++){
            cout << matrix[i][j];
        }
        cout << endl;
    }
    
}