Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Prap
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.002 second
Submitted On: 2026-05-04 11:24:08
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
string data;
cin>>data;
int size;
cin>>size;
int big = data.length();
int nick;
if (data[0] == '0' || data[0] == '1') {
nick = (big*size) - big + 1;
}
else {
nick = (big*size*8) - (big*8) + 1;
string waitagain = "";
int wait[big];
for (int i = 0; i<big; i++) {
wait[i] = int(data[i]);
}
char temp[8];
for (int i = 0; i<big; i++) {
for (int j = 7; j>=0; j--) {
if (wait[i] - pow(2,j) >= 0) {
temp[7-j] = '1';
wait[i] = wait[i] - pow(2,j);
}
else {
temp[7-j] = '0';
}
}
for (int j = 0; j<8; j++) {
waitagain = waitagain + temp[j];
}
}
data = waitagain;
big = data.length();
}
char map[size][nick];
for (int i = 0; i<nick; i++) {
for (int j = 0; j<size; j++) {
map[j][i] = '_';
}
}
map[0][0] = 'x';
int change = 1;
for (int i = 0; i<big; i++) {
if (data[i] == '0') {
for (int j = 0; j<size-1; j++) {
map[size-1][(size-1)*i+j] = 'x';
}
if (i == big-1) {
map[size-1][nick-1] = 'x';
}
if (change == 1) {
for (int j = 0; j<size; j++) {
map[j][(size-1)*i] = 'x';
}
}
change = 0;
}
else {
for (int j = 0; j<size-1; j++) {
map[0][(size-1)*i+j] = 'x';
}
if (i == big-1) {
map[0][nick-1] = 'x';
}
if (change == 0) {
for (int j = 0; j<size; j++) {
map[j][(size-1)*i] = 'x';
}
}
change = 1;
}
}
for (int i = 0; i<size; i++) {
for (int j = 0; j<nick; j++) {
cout<<map[i][j];
}
cout<<"\n";
}
return 0;
}