이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//Bismillahirrahmanirrahim
//█▀█─█──█──█▀█─█─█
//█▄█─█──█──█▄█─█▄█
//█─█─█▄─█▄─█─█─█─█
#include <bits/stdc++.h>
using namespace std;
typedef long long lo;
typedef pair< lo,lo > PII;
#define fi first
#define se second
#define mp make_pair
#define endl "\n"
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)
const lo inf = 1000000000000000000;
const lo KOK = 100000;
const lo LOG = 30;
const lo li = 200005;
const lo mod = 1000000007;
int n,m,b[li],a[li],k,flag,t,fa[li],vis[li];
int cev;
string s;
map<PII,int> mpp;
vector<int> v[li],vv;
inline int dsu(int x){
if(x==fa[x])return x;
return fa[x]=dsu(fa[x]);
}
inline void dfs(int node){
if(vis[node])return;
vis[node]=1;
vv.pb(node);
for(int i=0;i<(int)v[node].size();i++){
dfs(v[node][i]);
}
}
int main(void){
scanf("%d %d",&n,&t);
FOR fa[i]=i;
FOR{
int x,y;
scanf("%d %d",&x,&y);
if(mpp[{x-1,y}]){
v[mpp[{x-1,y}]].pb(i);
v[i].pb(mpp[{x-1,y}]);
}
if(mpp[{x+1,y}]){
v[mpp[{x+1,y}]].pb(i);
v[i].pb(mpp[{x+1,y}]);
}
if(mpp[{x,y-1}]){
v[mpp[{x,y-1}]].pb(i);
v[i].pb(mpp[{x,y-1}]);
}
if(mpp[{x,y+1}]){
v[mpp[{x,y+1}]].pb(i);
v[i].pb(mpp[{x,y+1}]);
}
if(mpp[{x+1,y+1}]){
v[mpp[{x+1,y+1}]].pb(i);
v[i].pb(mpp[{x+1,y+1}]);
}
if(mpp[{x-1,y+1}]){
v[mpp[{x-1,y+1}]].pb(i);
v[i].pb(mpp[{x-1,y+1}]);
}
if(mpp[{x-1,y-1}]){
v[mpp[{x-1,y-1}]].pb(i);
v[i].pb(mpp[{x-1,y-1}]);
}
if(mpp[{x+1,y-1}]){
v[mpp[{x+1,y-1}]].pb(i);
v[i].pb(mpp[{x+1,y-1}]);
}
mpp[{x,y}]=i;
}
dfs(1);
FOR{
if(vis[i]==0){printf("NO\n");return 0;}
}
printf("YES\n");
for(int i=0;i<n;i++)printf("%d\n",vv[i]);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
skyscrapers.cpp: In function 'int main()':
skyscrapers.cpp:50:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
50 | scanf("%d %d",&n,&t);
| ~~~~~^~~~~~~~~~~~~~~
skyscrapers.cpp:54:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
54 | scanf("%d %d",&x,&y);
| ~~~~~^~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |