Submission details
Task:Monikulmio
Sender:EngiFish
Submission time:2025-10-29 16:19:28 +0200
Language:C++ (C++17)
Status:READY
Result:90
Feedback
groupverdictscore
#190
Test results
testverdicttimescore
#1ACCEPTED0.00 s10details
#2ACCEPTED0.00 s10details
#3ACCEPTED0.00 s10details
#4ACCEPTED0.00 s10details
#5ACCEPTED0.00 s10details
#6ACCEPTED0.00 s10details
#7ACCEPTED0.00 s10details
#8ACCEPTED0.00 s10details
#9ACCEPTED0.01 s10details
#100.01 s0details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:232:28: warning: 'low' may be used uninitialized in this function [-Wmaybe-uninitialized]
  232 |     for (int i = high-2; i >= low; --i) {
      |                          ~~^~~~~~
input/code.cpp:232:14: warning: 'high' may be used uninitialized in this function [-Wmaybe-uninitialized]
  232 |     for (int i = high-2; i >= low; --i) {
      |              ^
input/code.cpp:205:38: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
  205 |                 }else if(newx < oldx && newy > oldy){
      |                          ~~~~~~~~~~~~^~~~~~~~~~~~~~
input/code.cpp:169:21: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
  169 |                     if(newx > oldx){
      |                     ^~
input/code.cpp:34:27: warning: 'oldx' may be used uninitialized in this function [-Wmaybe-uninitialized]
   34 |     int x, y, newx, newy, oldx, oldy, high, low;
      |...

Code

#include <iostream>
using namespace std;
#include <vector>

int main() {
    int rows, cols, corners;
    cin >> rows >> cols >> corners;
    string** array = new string*[rows];

    for (int i = 0; i < rows; ++i) {
        array[i] = new string[cols];
    }

    
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            array[i][j] = ".";
        }
    }

        string** array2 = new string*[rows];

    for (int i = 0; i < rows; ++i) {
        array2[i] = new string[cols];
    }

    
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            array2[i][j] = ".";
        }
    }

    int x, y, newx, newy, oldx, oldy, high, low;
    for (int i = 0; i < corners; i++){
            cin >> newy >> newx;
            array[newy-1][newx-1] = "*";
        if (i == 0){
            x = newx;
            y = newy;
            high = newy;
            low = newy;
        }else{
            if(newy > high){
                high = newy;
            }
            if(newy < low){
                low = newy;
            }
            if(newx == oldx){
                if(newy > oldy){
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newy-i>oldy; i++){
                        array[newy-1-i][newx-1] = "|";
                        array2[newy-1-i][newx-1] = "-";
                    }
                }else{
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newy+i<oldy; i++){
                        array[newy-1+i][newx-1] = "|";
                        array2[newy-1+i][newx-1] = "+";
                    }
                }
            }else{
                if(newy == oldy){
                    if(newx > oldx){
                        if(array2[oldy-1][oldx-1] == "."){
                            array2[oldy-1][oldx-1] = "-";
                        }
                        for(int i=1; newx-i>oldx; i++){
                            array[newy-1][newx-1-i] = "=";
                            array2[newy-1][newx-1-i] = "-";
                        }
                    }else{
                        for(int i=1; newx+i<oldx; i++){
                            array[newy-1][newx-1+i] = "=";
                            array2[newy-1][newx-1+i] = "-";
                        }
                    }
                }else if(newx < oldx && newy < oldy){
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newx<oldx-i; i++){
                        array[oldy-1-i][oldx-1-i] = "\\";
                        array2[oldy-1-i][oldx-1-i] = "+";
                    }
                }else if(newx > oldx && newy < oldy){
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newx>oldx+i; i++){
                        array[oldy-1-i][oldx-1+i] = "/";
                        array2[oldy-1-i][oldx-1+i] = "+";
                    }
                }else if(newx < oldx && newy > oldy){
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newx<oldx-i; i++){
                        array[oldy-1+i][oldx-1-i] = "/";
                        array2[oldy-1+i][oldx-1-i] = "-";
                    }
                }else{
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newx>oldx+i; i++){
                        array[oldy-1+i][oldx-1+i] = "\\";
                        array2[oldy-1+i][oldx-1+i] = "-";
                    }
                }
                
            }
        }
        oldx = newx;
        oldy = newy;
    }
    newx=x;
    newy=y;
            if(newx == oldx){
                if(newy > oldy){
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newy-i>oldy; i++){
                        array[newy-1-i][newx-1] = "|";
                        array2[newy-1-i][newx-1] = "-";
                    }
                }else{
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newy+i<oldy; i++){
                        array[newy-1+i][newx-1] = "|";
                        array2[newy-1+i][newx-1] = "+";
                    }
                }
            }else{
                if(newy == oldy){
                    if(newx > oldx){
                        if(array2[oldy-1][oldx-1] == "."){
                            array2[oldy-1][oldx-1] = "-";
                        }
                        for(int i=1; newx-i>oldx; i++){
                            array[newy-1][newx-1-i] = "=";
                            array2[newy-1][newx-1-i] = "-";
                        }
                    }else{
                        for(int i=1; newx+i<oldx; i++){
                            array[newy-1][newx-1+i] = "=";
                            array2[newy-1][newx-1+i] = "-";
                        }
                    }
                }else if(newx < oldx && newy < oldy){
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newx<oldx-i; i++){
                        array[oldy-1-i][oldx-1-i] = "\\";
                        array2[oldy-1-i][oldx-1-i] = "+";
                    }
                }else if(newx > oldx && newy < oldy){
                    array2[newy-1][newx-1] = "+";
                    if (array2[oldy-1][oldx-1] == "-"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "+";
                    }
                    for(int i=1; newx>oldx+i; i++){
                        array[oldy-1-i][oldx-1+i] = "/";
                        array2[oldy-1-i][oldx-1+i] = "+";
                    }
                }else if(newx < oldx && newy > oldy){
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newx<oldx-i; i++){
                        array[oldy-1+i][oldx-1-i] = "/";
                        array2[oldy-1+i][oldx-1-i] = "-";
                    }
                }else{
                    array2[newy-1][newx-1] = "-";
                    if (array2[oldy-1][oldx-1] == "+"){
                        array2[oldy-1][oldx-1] = "x";
                    }else{
                        array2[oldy-1][oldx-1] = "-";
                    }
                    for(int i=1; newx>oldx+i; i++){
                        array[oldy-1+i][oldx-1+i] = "\\";
                        array2[oldy-1+i][oldx-1+i] = "-";
                    }
                }
                
            }
    bool first = true;
    bool change = false;
    for (int i = high-2; i >= low; --i) {
        int a = 0;
        for (int j = 0; j < cols; ++j) {
            
            if(array2[i][j] == "+"){
                if (change){
                    a = 0;
                }else{
                    a = 1;
                }
                first = false;
                continue;
            }
            if(array2[i][j] == "-"){
                if (first){
                    change = true;
                }
                if (change){
                    a = 1;
                }else{
                    a = 0;
                }
                continue;
            }
            if(array2[i][j] == "x"){
                continue;
            }
            if (a % 2 == 1){
                array[i][j] = "#";
            }
        }
    }

    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            cout << array[i][j];
        }
        cout << endl;
    }

    
    for (int i = 0; i < rows; ++i) {
        delete[] array[i];
    }
    for (int i = 0; i < rows; ++i) {
        delete[] array2[i];
    }
    delete[] array;
    delete[] array2;
    return 0;
}

Test details

Test 1 (public)

Verdict: ACCEPTED

input
8 9 5
5 2
2 5
5 8
7 8
...

correct output
.........
....*....
.../#\...
../###\..
.*#####*.
...

user output
.........
....*....
.../#\...
../###\..
.*#####*.
...

Test 2 (public)

Verdict: ACCEPTED

input
20 40 4
5 10
5 30
15 30
15 10

correct output
.................................

user output
.................................

Test 3 (public)

Verdict: ACCEPTED

input
20 40 29
8 7
13 2
14 2
9 7
...

correct output
.................................

user output
.................................

Test 4 (public)

Verdict: ACCEPTED

input
20 40 14
5 12
5 25
8 28
13 28
...

correct output
.................................

user output
.................................

Test 5 (public)

Verdict: ACCEPTED

input
20 40 12
3 20
7 16
7 9
11 13
...

correct output
.................................

user output
.................................

Test 6 (public)

Verdict: ACCEPTED

input
9 35 33
2 3
2 8
4 8
4 5
...

correct output
.................................

user output
.................................

Test 7 (public)

Verdict: ACCEPTED

input
30 100 69
6 10
6 14
7 14
7 18
...

correct output
.................................

user output
.................................

Test 8 (public)

Verdict: ACCEPTED

input
40 60 192
11 3
11 5
10 6
11 7
...

correct output
.................................

user output
.................................

Test 9 (public)

Verdict: ACCEPTED

input
50 100 142
1 1
1 7
1 11
1 14
...

correct output
*=====*===*==*...................

user output
*=====*===*==*...................

Test 10 (public)

Verdict:

input
100 100 1000
10 1
4 7
1 4
1 9
...

correct output
...*====*........................

user output
...*====*........................

Feedback: Incorrect character on row 6, col 67: expected '*', got '#'