Submission

Status:

Compilation Error

Subtask/Task Score:

Score: 0

User: porpeang

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

Language: cpp

Time: 0.000 second

Submitted On: 2026-10-07 13:59:23

// --- นำโค้ดส่วนนี้ไปวางแทนที่ลูป for(int j=0;...) เดิมทั้งหมด ---

    int N = vec.size();
    int width = N * (a - 1) + 1;

    // สร้างตารางความกว้าง width ความสูง a เติม '_' ไว้ก่อน
    vector<string> grid(a, string(width, '_'));

    // เริ่มต้นสัญญาณที่ +5V (ถ้าบิตแรกเป็น 0 ให้ลากลงมาที่ 0V)
    if (vec[0] == 0) {
        for (int j = 0; j < a; j++) {
            grid[j][0] = 'X';
        }
    } else {
        grid[0][0] = 'X';
    }

    // วาดเส้นแนวนอนและเส้นแนวตั้งช่วงเปลี่ยนสัญญาณ
    for (int i = 0; i < N; i++) {
        int curr_val = vec[i];
        int row_target = (curr_val == 1) ? 0 : a - 1;
        
        int x_start = i * (a - 1);
        int x_end = (i + 1) * (a - 1);

        for (int x = x_start; x <= x_end; x++) {
            grid[row_target][x] = 'X';
        }

        if (i + 1 < N && vec[i] != vec[i + 1]) {
            for (int j = 0; j < a; j++) {
                grid[j][x_end] = 'X';
            }
        }
    }

    // แสดงผลกราฟ
    for (int j = 0; j < a; j++) {
        cout << grid[j] << '\n';
    }

    return 0;
}