Submission details
Task:Monikulmio
Sender:alli
Submission time:2025-11-09 22:14:01 +0200
Language:C++ (C++20)
Status:READY
Result:91
Feedback
groupverdictscore
#1ACCEPTED91
Test results
testverdicttimescore
#1ACCEPTED0.01 s10details
#2ACCEPTED0.01 s10details
#3ACCEPTED0.01 s10details
#4ACCEPTED0.01 s10details
#5ACCEPTED0.01 s10details
#6ACCEPTED0.01 s7details
#7ACCEPTED0.01 s10details
#8ACCEPTED0.01 s10details
#9ACCEPTED0.01 s7details
#10ACCEPTED0.01 s7details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:82:14: warning: unused variable 'fill' [-Wunused-variable]
   82 |         bool fill = false;
      |              ^~~~

Code

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;

ll n, m, k;
string s[101010];

void lisaa(int a, int b) {
    s[a][b] = '*';
}

void liita(int a1, int b1, int a2, int b2) {
    if (a1 == a2) {
        if (b1 > b2) swap(b1, b2);
        for (int i = b1+1; i < b2; i++) {
            s[a1][i] = '=';
        }
    }
    else if (b1 == b2) {
        if (a1 > a2) swap(a1, a2);
        for (int i = a1+1; i < a2; i++) {
            s[i][b1] = '|';
        }
    }
    else {
        if (a1 > a2) {swap(a1, a2); swap(b1, b2);}
        if (b2 > b1) {
            for (int i = 1; i < a2-a1; i++) {
                s[a1+i][b1+i] = '\\';
            }
        }
        else {
            for (int i = 1; i < a2-a1; i++) {
                s[a1+i][b1-i] = '/';
            }
        }
    }
}

void tayta(int a, int b) {
    if (a > n || a<0 || b > m || b < 0) return;
    if (s[a][b] != '.') return;
    s[a][b] = '#';
    tayta(a, b+1);
    tayta(a, b-1);
    tayta(a+1, b);
    tayta(a-1, b);
}

int main() {
    //ios_base::sync_with_stdio(false);
    //cin.tie(nullptr);
    //freopen(R"(C:\Users\Kymppi\Downloads\test_input.txt)", "r", stdin);

    cin >> n >> m >> k;

    for (int i = 0; i <= n; i++) {
        s[i] = string(m+1, '.');
    }

    int f1 = 0, f2 = 0;
    int l1 = 0, l2 = 0;

    for (int i = 1; i <= k; i++) {
        int a, b;
        cin >> a >> b;
        if (i == 1) {
            f1 = a;
            f2 = b;
        }else {
            liita(l1, l2, a, b);
        }
        l1 = a;
        l2 = b;
        lisaa(a, b);
        if (i == k) {
            liita(f1, f2, a, b);
        }
    }

    for (int i = 1; i <= n; i++) {
        bool fill = false;
        for (int j = 1; j <= m; j++) {
            if (s[i][j] == '*') {
                break;
            }
        }
    }

    for (int j = 1; j <= m; j++) {
        bool fill = false;
        bool on = true;
        for (int i = 1; i <= n; i++) {
            if (s[i][j] == '*') {
                on = !on;
                //break;
            }
            if (on && (s[i][j] == '\\' || s[i][j] == '/' || s[i][j] == '=')) {
                if (!fill) {
                    fill = true;
                    tayta(i+1, j);
                    //s[i+1][j] = '#';
                }
                else {
                    fill = false;
                }
            }
        }
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            cout << s[i][j];
        } cout << "\n";
    }
}

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
##############################...

Feedback: Lines are drawn correctly. Incorrect fill character on row 1, col 1: expected '.', got '#'

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
*=====*===*==*################...

Feedback: Lines are drawn correctly. Incorrect fill character on row 1, col 15: expected '.', got '#'

Test 10 (public)

Verdict: ACCEPTED

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

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

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

Feedback: Lines are drawn correctly. Incorrect fill character on row 1, col 1: expected '.', got '#'