Submission details
Task:Monikulmio
Sender:Sukarth
Submission time:2025-10-27 07:33:01 +0200
Language:C++ (C++20)
Status:READY
Result:76
Feedback
groupverdictscore
#1ACCEPTED76
Test results
testverdicttimescore
#1ACCEPTED0.00 s10details
#2ACCEPTED0.00 s10details
#3ACCEPTED0.00 s7details
#4ACCEPTED0.00 s7details
#5ACCEPTED0.00 s7details
#6ACCEPTED0.00 s7details
#7ACCEPTED0.00 s7details
#8ACCEPTED0.00 s7details
#9ACCEPTED0.00 s7details
#10ACCEPTED0.00 s7details

Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    
    ll n, m, k;
    cin >> n >> m >> k;
    
    vector<vector<char>> grid(n, vector<char>(m, '.'));
    vector<pair<int, int>> corners(k);
    
    
    for (ll i = 0; i < k; i++) {
        cin >> corners[i].first >> corners[i].second;
        grid[corners[i].first - 1][corners[i].second - 1] = '*';
    }
    
    
    
    for (ll i = 0; i < k; i++) {
        ll y1 = corners[i].first -1;
        ll x1 = corners[i].second -1;
        ll y2 = corners[(i+1) % k].first -1;
        ll x2 = corners[(i+1) % k].second -1;
        
        if (x2 == x1) {
            for (ll i = min(y1, y2)+1; i < max(y1, y2); i++) {
                    grid[i][x2] = '|';
            }
        }
        
        else if (y2 == y1) {
            for (ll j = min(x1, x2)+1; j < max(x1, x2); j++) {
                grid[y2][j] = '=';
            }
        }
        
        else {
            ll ystep = -1, xstep = -1;
            if (y2 > y1) ystep = 1;
            if (x2 > x1) xstep = 1;
            
            char charr = '/';
            if (ystep == xstep) charr = '\\';
            
            ll cury = y1 + ystep;
            ll curx = x1 + xstep;
            
            while (cury != y2) {
                grid[cury][curx] = charr;
                cury += ystep;
                curx += xstep;
            }
            
        }
    }
    
    auto sep = {'|', '/', '\\', '*'};
    
    for (ll i = 0; i < n; i++) {
        bool toggle = false;
        ll charcount = 0;
        for (ll j = 0; j < m-1; j++) {
            if (find(begin(sep), end(sep),grid[i][j]) != end(sep)) {
                toggle = true;
                if (grid[i][j] == '*' && count(grid[i].begin(), grid[i].end(), '*') == 1) toggle = false;
                charcount++;
            }
            
            if (charcount % 2 != 0 && toggle && grid[i][j+1] == '.') grid[i][j+1] = '#';
        }
        
    } 
    
    
    for (ll i = 0; i < n; i++) {
        for (ll j = 0; j < m; j++) {
            cout << grid[i][j];
        }
        cout << "\n";
    }
    
    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
.................................

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

Test 4 (public)

Verdict: ACCEPTED

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

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

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

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

Test 5 (public)

Verdict: ACCEPTED

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

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

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

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

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 4, col 9: expected '.', got '#'

Test 7 (public)

Verdict: ACCEPTED

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

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

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

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

Test 8 (public)

Verdict: ACCEPTED

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

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

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

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

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 2, col 11: 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 2, col 39: expected '.', got '#'