Submission

Status:

----------

Subtask/Task Score:

0/100

Score: 0

User: shurye

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-10-11 13:27:22

#include <iostream>
#include <string>
#include <cctype>
using namespace std ;
string ToBinary (char Alpha) {
    string t = "" ;
    int N = int(Alpha) ;
        while(N >0){
            int remain = N%2 ;
            t =  to_string(remain)+ t ;
            N =N/2 ;
        }return '0'+t ;
}
string sign ;
int n ;
int main(){
    cin >> sign ;
    cin >> n ;
    if(isalpha(sign[1])){
        string newsignal = "" ;
        for(auto i : sign) {
            newsignal = newsignal + ToBinary(i) ;
        }
        sign = newsignal ;
    }
    cout << 'X' ;
    for (int i = 0 ;i< sign.length() ;i++ ){
        if(sign[i]== '1'){
            cout << string(n-1,'X');
        }else if((i != sign.length()-1) && sign[i]=='0' && sign[i+1] == '0'){
            cout << string(n-1,'_');
        }else if((i == sign.length()-1) && sign[i]=='0'){
            cout << string(n-1,'_');
        }else if((i != sign.length()-1) && sign[i]=='0' && sign[i+1] == '1'){
            cout << string(n-2,'_') << 'X';
        }
    }cout << "\n";
    for (int i = 0 ;i<n-2 ; i++){
        if(sign[0]== '1'){cout << '_';}
        else{cout << 'X';}
        for (int i = 0 ;i< sign.length() ;i++ ){
            if((i == sign.length()-1 && (sign[i] == '1'||sign[i]=='0'))||(i != sign.length()-1 && sign[i] == sign[i+1])){
                cout << string(n-1,'_');
            }else if (i != sign.length()-1 && sign[i]!= sign[i+1]){
                cout << string(n-2,'_')<< 'X';
            }
        }cout <<"\n";
    }
    if(sign[0]== '1'){cout << '_';}
    else{cout << 'X';}
    for (int i = 0 ;i< sign.length() ;i++ ){
        if(sign[i]== '1'&& sign[i+1]!= '0'){
            cout << string(n-1,'_');
        }else if (sign[i]== '1'&& sign[i+1] == '0'){
            cout << string(n-2,'_')<<'X';
        }else if((i != sign.length()-1) && sign[i]=='0' && sign[i+1] == '0'){
            cout << string(n-1,'X');
        }else if((i == sign.length()-1) && sign[i]=='0'){
            cout << string(n-1,'X');
        }else if((i != sign.length()-1) && sign[i]=='0' && sign[i+1] == '1'){
            cout << string(n-2,'X') << 'X';
        }
    }
    
}