Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: admin

Problemset: กราฟสัญญาณดิจิทัล

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-12 12:11:24

#include <bits/stdc++.h>

using namespace std;
int a;
void px(string x) {
	printf("x");
	for (int i=0; i<x.size(); i++) {
		for (int j=0; j<a-2; j++) {
			if (x[i] == '0') {
				printf("_");
			} else {
				printf("x");
			}
		}
		if (x[i+1] == '1' || x[i] == '1') printf("x");
		else printf("_");
		
	}
	printf("\n");
	//
	
	for (int k=0; k<a-2; k++) {
		if (x[0] == '1') printf("_");
	else printf("x");
	
	for (int i=0; i<x.size(); i++) {
		for (int j=0; j<a-2; j++) {
			if (x[i] == '1') {
				printf("_");
			} else {
				printf("_");
			}
		}
		
		// magic
		if (x[i+1] != x[i] && i != x.size()-1) printf("x");
		else printf("_");
		
	}
	printf("\n");
	}
	
	//
	if (x[0] == '1') printf("_");
	else printf("x");
	for (int i=0; i<x.size(); i++) {
		for (int j=0; j<a-2; j++) {
			if (x[i] == '1') {
				printf("_");
			} else {
				printf("x");
			}
		}
		if (x[i+1] == '0' || x[i] == '0') printf("x");
		else printf("_");
		
	}
	printf("\n");
}
string to_ascii(char x) {
	string b = "";
	for (int i=0; i<8;i++) {
		if(x&1) b = '1'+b;
		else b='0'+b;
		x >>= 1;
	}
	return b;
}
main() {
	
	string x; 
	cin >> x;
	cin >> a;
	
	if (x[0] == '1' || x[0] == '0') {
		px(x);
	} else {
		string y = "";
		
		for (int i=0; i<x.size(); i++) {
			y += to_ascii(x[i]);
		}
		px(y);
	}
	
	
}