Submission

Status:

----------

Subtask/Task Score:

0/100

Score: 0

User: TonnamSora

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-10 10:33:23

#include <iostream>
using namespace std;

int main(){
    /*string s;
    cin >> s;
    int len = s.length();
    int a[len];
    for(int i = 0; i < len; i++){
        cout << a[i];
    }
    int x;
    cin >> x;
    int length = ((x - 1) * len) + 1;
    char c[length][x];
    for(int i = 0; i < x; i++){
        for(int j = 0; j < length; j++){
            c[j][i] = '_';
        }
    }
    for(int i = 0; i < x; i++){
        for(int j = 0; j < length; j++){
            if(a[0] == 1){
                for(int k = 0; k < x; k++){
                    c[0][k] = 'X';
                }
            }
            else{
                c[0][0] = 'X';
            }
        }
    }
    for(int j = 1; j < length; j = j + 3){
        if(a[j] == 0){
            for(int i = 0; i < x - 1; i++){
                c[0][i + j] = 'X';
            }
        }
    }
    for(int i = 0; i < x; i++){
        for(int j = 0; j < length; j++){
            if(j % (x - 1) == 0 && j != 0){
                if(a[(j / (x - 1))] != save){
                    for(int k = 0; k < x; k++){
                        c[0][k] = 'X';
                    }
                    save = (save + 1) % 2;
                }
                else{
                    if(save == 1){
                        c[0][j] = 'X';
                    }
                    else{
                        c[x - 1][j] = 'X';
                    }
                }
            }
            else{
                if(save == 1){
                    c[0][j] = 'X';
                }
                else{
                    c[x - 1][j] = 'X';
                }
            }
        }
    }
    for(int i = 0; i < x; i++){
        for(int j = 0; j < length; j++){
            cout << c[j][i];
        }
        cout << "\n";
    }*/
    string s;
    cin >> s;
    if(s[0] >= 'A'){
        int b = 0;
        int l = s.length();
        int binary[80];
        int cnt = 0;
        for(int i = 0; i < l; i++){
            b = (int)s[i];
            int binarytemp[8];
            for (int j = 7; j >= 0; j--) {
                binarytemp[j] = b % 2;
                b /= 2;
            }
            for(int j = 0; j < 8; j++){
                binary[j + i * 8] = binarytemp[j];
                cnt++;
            }
        }
        int x;
        cin >> x;
        int length = (x - 1) * cnt + 1;
        int c[x][length];
        for(int i = 0; i < x; i++){
            for(int j = 0; j < length; j++){
                c[i][j] = '_';
            }
        }
        c[0][0] = 'X';
        int idx1 = 0;
        for(int i = 1; i < length; i = i+x-1){
            if(binary[idx1] == 1){
                for(int j = 0; j < x - 1; j++){
                    c[0][i + j] = 'X';
                }
            }
            idx1++;
        }
        int idx2 = 0;
        for(int i = 1; i < length; i = i+x-1){
            if(binary[idx2] == 0){
                for(int j = 0; j < x - 1; j++){
                    c[x - 1][i + j] = 'X';
                }
            }
            idx2++;
        }
        for(int i = 0; i < length; i = i+x-1){
            if(c[0][i] == 'X' && c[0][i + 1] == '_' && i != length - 1){
                for(int j = 0; j < x; j++){
                    c[j][i] = 'X';
                }
            }
        }
        for(int i = 0; i < length; i = i+x-1){
            if(c[x - 1][i] == 'X' && c[x - 1][i + 1] == '_' && i != length - 1){
                for(int j = 0; j < x; j++){
                    c[j][i] = 'X';
                }
            }
        }
        for(int i = 0; i < x; i++){
            for(int j = 0; j < length; j++){
                cout << char(c[i][j]);
            }
            cout << "\n";
        }
    }
    if(s[0] < 'A'){
        int len = s.length();
        int a[len];
        for(int i = 0; i < len; i++){
            a[i] = s[i] - '0';
        }
        int x;
        cin >> x;
        int length = (x - 1) * len + 1;
        int c[x][length];
        for(int i = 0; i < x; i++){
            for(int j = 0; j < length; j++){
                c[i][j] = '_';
            }
        }
        c[0][0] = 'X';
        int idx1 = 0;
        for(int i = 1; i < length; i = i+x-1){
            if(a[idx1] == 1){
                for(int j = 0; j < x - 1; j++){
                    c[0][i + j] = 'X';
                }
            }
            idx1++;
        }
        int idx2 = 0;
        for(int i = 1; i < length; i = i+x-1){
            if(a[idx2] == 0){
                for(int j = 0; j < x - 1; j++){
                    c[x - 1][i + j] = 'X';
                }
            }
            idx2++;
        }
        for(int i = 0; i < length; i = i+x-1){
            if(c[0][i] == 'X' && c[0][i + 1] == '_' && i != length - 1){
                for(int j = 0; j < x; j++){
                    c[j][i] = 'X';
                }
            }
        }
        for(int i = 0; i < length; i = i+x-1){
            if(c[x - 1][i] == 'X' && c[x - 1][i + 1] == '_' && i != length - 1){
                for(int j = 0; j < x; j++){
                    c[j][i] = 'X';
                }
            }
        }
        for(int i = 0; i < x; i++){
            for(int j = 0; j < length; j++){
                cout << char(c[i][j]);
            }
            cout << "\n";
        }
    }
}