Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: jackpapho
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-07 18:23:39
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
cin.tie(0)->sync_with_stdio(0);
string s,real;
ll n,start = 0;
cin >> s >> n;
if (('A' <=s[0]&&s[0] <= 'Z') || ('a' <=s[0]&&s[0] <= 'z')){
for (char c:s){
int x = c;
for (int i = 7;i >= 0;i--){
real += char(((x / (int)pow(2,i)) % 2) + '0');
}
}
}
else {
real = s;
}
vector<vector<char>> arr(n, vector<char>(n*real.length()+1-real.length()));
for (ll i = 0;i < n;i++){
for (ll j = 0;j < n*real.length()+1-real.length();j++){
arr[i][j] = '_';
}
}
for (ll k = 0;k < real.length();k++){
if (real[k] == '0'&&k != 0&&real[k-1]== '0'){
for (ll j = start;j < n-1+start;j++){
arr[n-1][j] = 'x';
}
start+= n-1;
}
else if (real[k] == '0'){
for (ll i = 0;i < n;i++){
if (i == n-1){
for (ll j = start;j < n-1+start;j++){
arr[i][j] = 'x';
}
start+= n-1;
continue;
}
arr[i][start] = 'x';
}
}
else if (real[k] == '1' && (k == 0||real[k-1] == '1')){
for (ll j = start;j < n+start;j++){
arr[0][j] = 'x';
}
start+= n-1;
continue;
}
else if(real[k] == '1'){
for (ll i = 0; i < n;i++){
for (ll j = start;j < start+n-1;j++){
if (i == 0) arr[i][j] = 'x';
if (j == start) arr[i][j] = 'x';
}
}
start+=n-1;
}
}
if (real.length() > 1 && real[real.length()-1] == '1'){
arr[0][start] = 'x';
}
else if(real[real.length()-1] == '0'){
arr[n-1][start] = 'x';
}
for (ll i = 0;i < n;i++){
for (ll j = 0;j < n*real.length()+1-real.length();j++){
cout << arr[i][j];
}
cout << '\n';
}
return 0;
}