| Task: | Monikulmio |
| Sender: | sandyy |
| Submission time: | 2025-10-27 16:35:46 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 94 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 94 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 10 | details |
| #2 | ACCEPTED | 0.00 s | 10 | details |
| #3 | ACCEPTED | 0.00 s | 10 | details |
| #4 | ACCEPTED | 0.00 s | 10 | details |
| #5 | ACCEPTED | 0.00 s | 10 | details |
| #6 | ACCEPTED | 0.00 s | 10 | details |
| #7 | ACCEPTED | 0.00 s | 10 | details |
| #8 | ACCEPTED | 0.00 s | 7 | details |
| #9 | ACCEPTED | 0.00 s | 10 | details |
| #10 | ACCEPTED | 0.00 s | 7 | details |
Compiler report
input/code.cpp: In function 'void setIO(std::string)':
input/code.cpp:6:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
6 | freopen((name+".in").c_str(), "r", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
input/code.cpp:7:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
7 | freopen((name+".out").c_str(), "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Code
#include<bits/stdc++.h>
using namespace std;
void setIO(string name="") {
if(name.length()) {
freopen((name+".in").c_str(), "r", stdin);
freopen((name+".out").c_str(), "w", stdout);
}
}
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template <class T>
using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#define ll long long
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define debug(x) cout << (x) << "\n"
#define ar array
#define fi first
#define se second
const int mxN=101;
int n, m, c;
char grid[mxN][mxN];
bool check(int i, int j) {
return (grid[i][j]=='|'||grid[i][j]=='/'||grid[i][j]=='\\'||grid[i][j]=='*');
}
void dfs(int i, int j) {
if(i<1 || i>n || j<1 || j>m || grid[i][j]!='.') return;
grid[i][j]='#';
dfs(i+1, j);
dfs(i-1, j);
dfs(i, j+1);
dfs(i, j-1);
}
void solve() {
cin >> n >> m >> c;
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
grid[i][j]='.';
}
}
vector<ar<int, 2>> corners(c);
for(int i=0; i<c; i++) {
cin >> corners[i][0] >> corners[i][1];
grid[corners[i][0]][corners[i][1]]='*';
}
for(int k=0; k<c; k++) {
int a = k-1;
int b = k;
if(k==0) a = c-1;
if(corners[a][1]==corners[b][1]) {
for(int i=min(corners[a][0], corners[b][0])+1; i<max(corners[a][0], corners[b][0]); i++) {
grid[i][corners[a][1]]='|';
}
}
if(corners[a][0]==corners[b][0]) {
for(int i=min(corners[a][1], corners[b][1])+1; i<max(corners[b][1], corners[a][1]); i++) {
grid[corners[a][0]][i]='=';
}
}
if(corners[a][0]!=corners[b][0] && corners[a][1]!=corners[b][1]) {
if(corners[a][1]>corners[b][1]) swap(a, b);
if(corners[a][0] > corners[b][0]) {
for(int i=1; i<=abs(corners[b][1]-corners[a][1])-1; i++) {
grid[corners[a][0]-i][corners[a][1]+i]='/';
}
} else {
for(int i=1; i<=corners[b][1]-corners[a][1]-1; i++) {
grid[corners[a][0]+i][corners[a][1]+i]='\\';
}
}
}
}
for(int i=1; i<=100; i++) {
int cnt=0;
for(int j=1; j<=100; j++) {
if(grid[i][j]=='.' && cnt%2==1) {
dfs(i, j);
}
if(grid[i][j]=='*') break;
if(grid[i][j]=='|' || grid[i][j]=='/' || grid[i][j]=='\\') {
cnt++;
}
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
cout << grid[i][j];
}
cout << "\n";
}
}
int main() {
cin.tie(0) -> sync_with_stdio(0);
//setIO("sleepy");
int T=1;
//cin >> T;
while(T--)
solve();
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 |
|---|
| ................................. |
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 |
|---|
| *=====*===*==*................... |
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 86: expected '#', got '.'
