# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
101194 | mayhoubsaleh | Konj (COCI19_konj) | C++14 | 419 ms | 24764 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
int n,a[200005][4];
map<pair<int,int>,vector<int>>m;
map<pair<int,int>,bool>vis;
int l=1e3,r=-1,up=-1,down=1e3;
bool c[333][333];
void add(int id){
for(int i=a[id][0];i<=a[id][2];i++){
for(int j=a[id][1];j<=a[id][3];j++){
c[i][j]=1;
up=max(up,i);
down=min(down,i);
l=min(l,j);r=max(r,j);
}
}
}
void dfs(int x,int y){
if(vis[{x,y}])return;
vis[{x,y}]=1;
for(auto i:m[{x,y}]){
add(i);
dfs(a[i][0],a[i][1]);
dfs(a[i][2],a[i][3]);
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<4;j++){
cin>>a[i][j];
}
if(a[i][0]>a[i][2])swap(a[i][0],a[i][2]);
if(a[i][1]>a[i][3])swap(a[i][1],a[i][3]);
m[{a[i][0],a[i][1]}].pb(i);
m[{a[i][2],a[i][3]}].pb(i);
}
int x,y;
cin>>x>>y;
for(int i=0;i<n;i++){
if(a[i][0]==a[i][2]){
if(y>=a[i][1]&&y<=a[i][3])dfs(a[i][0],a[i][1]),dfs(a[i][2],a[i][3]);
}
else{
if(x>=a[i][0]&&x<=a[i][2])dfs(a[i][0],a[i][1]),dfs(a[i][2],a[i][3]);
}
}
for(int i=r;i>=l;i--){
for(int j=down;j<=up;j++){
if(c[j][i])cout<<'#';
else cout<<'.';
}
cout<<endl;
}
return 0;
}
//ofstream fout("planting.out");
//ifstream fin("planting.in");
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |