Submission details
Task:Monikulmio
Sender:alli
Submission time:2025-10-27 18:00:34 +0200
Language:C++ (C++20)
Status:READY
Result:84
Feedback
groupverdictscore
#184
Test results
testverdicttimescore
#1ACCEPTED0.01 s10details
#2ACCEPTED0.01 s10details
#3ACCEPTED0.01 s10details
#4ACCEPTED0.01 s10details
#5ACCEPTED0.01 s10details
#60.01 s0details
#7ACCEPTED0.01 s10details
#8ACCEPTED0.01 s10details
#9ACCEPTED0.01 s7details
#10ACCEPTED0.01 s7details

Code

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

ll n, m, k;
string s[101010];
set<pair<int, int>> v;

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

void liita(int a1, int b1, int a2, int b2) {
    b1 -= 1;
    b2 -= 1;
    if (v.size() < 3) {
        v.insert(make_pair(a1, b1));
        v.insert(make_pair(a2, 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 (s[a][b] != '#') return;
    s[a][b] = '.';
    //cout << "a: " << a << " b: " << b << " s[a][b]: " << s[a][b] << endl;
    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 = 1; i <= n; i++) {
        s[i] = string(m, '#');
    }

    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);
        }
    }

    /*cout << "v.size(): " << v.size() << endl;
    if (v.size() == 3) {
        int avga=0,avgb=0;
        for(auto p : v) {
            cout << "(" << p.first << ", " << p.second << ")" << endl;
            avga+=p.first;
            avgb+=p.second;
        }
        avga/=3;
        avgb/=3;
        //cout << "avga: " << avga << endl;
        //cout << "avgb: " << avgb << endl;
        tayta(avga, avgb);
    }*/

    tayta(1,0);

    /*liita(7, 2, 7, 8);
    liita(5, 8, 7, 8);
    liita(5, 2, 7, 2);
    liita(5, 2, 2, 5);
    liita(2, 5, 5, 8);*/
    //liita(5, 8-1, 2, 5-1);


    for (int i = 1; i <= n; i++) {
        cout << s[i] << "\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:

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

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

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

Feedback: Incorrect length on line 1: expected 35, got 46

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 10: expected '.', got '#'