Submission details
Task:Monikulmio
Sender:xiaou0
Submission time:2025-10-29 00:55:16 +0200
Language:C++ (C++17)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
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
#10ACCEPTED0.01 s10details

Code

#include <bits/stdc++.h>
using namespace std;
 
const int N=1005;
 
int n,m,k;
int x[N],y[N];
 
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
 
char grid[N][N];
int power[N][N];
 
struct Node{
    int x,y;
};
 
queue<Node>q;
 
void bfs(){
    q.push({0,0});
    while(!q.empty()){
        int xx=q.front().x;
        int yy=q.front().y;
        q.pop();
        for(int i=0;i<4;++i){
            int nx=xx+dx[i];
            int ny=yy+dy[i];
            if(grid[nx][ny]||nx<0||nx>n+1||ny<0||ny>m+1)continue;
            grid[nx][ny]='.';
            q.push({nx,ny});
        }
    }
}
 
int main(){
    cin>>n>>m>>k;
    n*=3;m*=3;
    for(int i=1;i<=k;++i){
        cin>>x[i]>>y[i];
        x[i]*=3;y[i]*=3;
    }
    x[k+1]=x[1];
    y[k+1]=y[1];
    for(int i=1;i<=k;++i){
        grid[x[i]][y[i]]='*';
        if(x[i]<x[i+1]){
            int d=x[i+1]-x[i];
            if(y[i]<y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]+j][y[i]+j]='\\';
                }
            }
            if(y[i]>y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]+j][y[i]-j]='/';
                }
            }
            if(y[i]==y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]+j][y[i]]='|';
                }
            }
        }
        else if(x[i]>x[i+1]){
            int d=x[i]-x[i+1];
            if(y[i]<y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]-j][y[i]+j]='/';
                }
            }
            if(y[i]>y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]-j][y[i]-j]='\\';
                }
            }
            if(y[i]==y[i+1]){
                for(int j=1;j<d;++j){
                    grid[x[i]-j][y[i]]='|';
                }
            }
        }
        else if(x[i]==x[i+1]){
            if(y[i]<y[i+1]){  
                int d=y[i+1]-y[i];
                for(int j=1;j<d;++j){
                    grid[x[i]][y[i]+j]='=';
                }
            }
            if(y[i]>y[i+1]){  
                int d=y[i]-y[i+1];
                for(int j=1;j<d;++j){
                    grid[x[i]][y[i]-j]='=';
                }
            }
        }
    }
    bfs();
    for(int i=1;i<=n/3;++i){
        for(int j=1;j<=m/3;++j){
            if(!grid[i*3][j*3])cout<<'#';
            else cout<<grid[i*3][j*3];
        }
        cout<<endl;
    }
    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: ACCEPTED

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

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

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