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;
}