Submission
Status:
----------
Subtask/Task Score:
0/100
Score: 0
User: nate213121
Problemset: กราฟสัญญาณดิจิทัล
Language: cpp
Time: 0.002 second
Submitted On: 2026-09-04 19:40:08
#include <bits/stdc++.h>
using namespace std;
int main()
{
string binary;
int s;
cin >> binary >> s;
string binaryStr = "";
if(binary[0] != '0' && binary[0] != '1')
{
for(auto& c:binary)
{
binaryStr += bitset<8>(c).to_string();
}
binary = binaryStr;
}
vector<vector<char>> grid;
for(int i = 0; i < s; i++)
{
vector<char> line;
for(int j = 0; j < binary.size() * s; j++)
{
line.push_back('_');
}
grid.push_back(line);
}
int currColumn = 0;
for(int i = 0; i < binary.size(); i++)
{
int row;
if(binary[i] == '0')
{
row = s - 1;
}
else
{
row = 0;
}
for(int j = 0; j < s; j++)
{
grid[row][currColumn] = 'X';
currColumn++;
}
currColumn--;
}
int verticalCount = 0;
for(int col = 0; col < grid[0].size(); col++)
{
if(grid[0][col] == 'X' && grid[s - 1][col] == 'X')
{
for(int row = 1; row <= s - 2; row++)
{
grid[row][col] = 'X';
}
verticalCount++;
}
}
if(binary[0] == '0')
{
for(int row = 0; row < s; row++)
{
grid[row][0] = 'X';
}
}
for(int i = 0; i < grid.size(); i++)
{
for(int j = 0; j < binary.size() * (s - 1) + 1; j++)
{
cout << grid[i][j];
}
cout << endl;
}
return 0;
}