Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Some1258

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

Language: cpp

Time: 0.004 second

Submitted On: 2026-07-31 09:32:39

#include<bits/stdc++.h>
using namespace std;
int main(){
    string input;
    int x;
    cin>>input>>x;
    bool binary = true;
    for(char c:input){
        if(c!='0'&&c!='1'){
            binary=false;
            break;
        }
    }
    string bits;
    if(binary){
        bits=input;
    }else{
        for(char c: input){
            int ascii=c;
            string eightbits="";
            for(int i=0;i<8;i++){
                int rem=ascii%2;
                if(rem==0){
                    eightbits='0'+eightbits;
                }else{
                    eightbits='1'+eightbits;
                }
                ascii/=2;
            }
            bits+=eightbits;
        }
    }
    int prev=1;
    int col=0;
    int width=1+bits.length()*(x-1);
    vector<string> graph(x,string(width,'_'));
    for(char b:bits){
        int now=b-'0';
        if(now!=prev){
            for(int r=0;r<x;r++){
                graph[r][col]='x';
            }
        }
        if(now==1){
            for(int j=0;j<x;j++){
                graph[0][col+j]='x';
            }
        }else{
            for(int i=0;i<x;i++){
                graph[x-1][col+i]='x';
            }
        }
        prev=now;
        col+=x-1;
    }
    for(int r=0;r<x;r++){
        cout<<graph[r];
        if(r!=x-1){
            cout<<'\n';
        }
    }
}