Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: loop
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-10 18:34:27
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int size;
cin >> s >> size;
string bits = "";
bool binary = true;
for (int i = 0; i < (int)s.size(); i++) if (s[i] != '0' && s[i] != '1') binary = false;
if (binary) bits = s;
else
for (int i = 0; i < (int)s.size(); i++)
for (int b = 7; b >= 0; b--) bits += ((s[i] >> b) & 1) ? '1' : '0';
int n = bits.size(), step = size - 1, width = n * step + 1;
string g[20];
for (int r = 0; r < size; r++) g[r] = string(width, '_');
char level = '1'; // the line starts at +5V
for (int i = 0; i < n; i++) {
int x0 = i * step;
if (bits[i] != level)
for (int r = 0; r < size; r++) g[r][x0] = 'x';
level = bits[i];
int row = level == '1' ? 0 : size - 1;
for (int x = x0; x <= x0 + step; x++) g[row][x] = 'x';
}
for (int r = 0; r < size; r++) cout << g[r] << '\n';
return 0;
}