Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: shurye
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.004 second
Submitted On: 2026-10-11 13:28:55
#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';
}
}
}