#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define F first
#define S second
#define coy cout<<"YES\n"
#define con cout<<"NO\n"
#define co1 cout<<"-1\n"
#define sc(x) scanf("%lld",&x)
#define all(x) x.begin(),x.end()
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int SI=3e5+7;
ll INF=8e18+7;
int dx[] = { 0 , 0, 1 , -1 , 1 , 1, -1, -1};
int dy[] = { 1 , -1,0 , 0 , 1 , -1 , 1 ,-1};
int MOD=1e9+7;
ll n,t;
map < ll,ll > xma,xmi,yma,ymi,vx,vy;
map < pair <ll,ll> ,ll> mp,vis;
pair <ll,ll> p[SI];
ll bo[SI];
vector < ll> ans;
ll st,mast;
queue < pair < ll,ll> > q;
void BFS()
{
for (int i=1;i<=n;i++)
{
if (mast<bo[i])
st=i,mast=bo[i];
}
q.push(p[st]);
while (q.size())
{
ll x=q.front().F,y=q.front().S;
q.pop();
pair < ll,ll> XY={x,y};
vis[XY]=1;
ans.pb(mp[XY]);
for (int i=0;i<8;i++)
{
if(vis[{x+dx[i],y+dy[i]}]==0&&mp[{x+dx[i],y+dy[i]}]>0)
q.push({x+dx[i],y+dy[i]}),vis[{x+dx[i],y+dy[i]}]=1;
}
}
}
int main()
{
fast
cin>>n>>t;
for (int i=1;i<=n;i++)
{
ll a,b;
cin>>a>>b;
mp[{a,b}]=i;
p[i]={a,b};
if (vx[a]==0)
{
vx[a]=1;
xma[a]=xmi[a]=b;
}
if (vy[b]==0)
{
vy[b]=1;
yma[b]=ymi[b]=a;
}
yma[b]=max(yma[b],a);
ymi[b]=min(ymi[b],a);
xma[a]=max(xma[a],b);
xmi[a]=min(xmi[a],b);
}
for (int i=1;i<=n;i++)
{
ll x=p[i].F,y=p[i].S;
bo[i]=(yma[y]!=x)+(ymi[y]!=x)+(xma[x]!=y)+(xmi[x]==y);
}
BFS();
if (ans.size()!=n)
con;
else
{
coy;
for (auto i:ans)
cout << i<<"\n";
}
// use scanf not cin
return 0;
}
Compilation message
skyscrapers.cpp: In function 'int main()':
skyscrapers.cpp:79:18: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
79 | if (ans.size()!=n)
| ~~~~~~~~~~^~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
ans=YES N=1 |
2 |
Correct |
0 ms |
204 KB |
ans=YES N=4 |
3 |
Correct |
0 ms |
204 KB |
ans=NO N=4 |
4 |
Correct |
0 ms |
204 KB |
ans=YES N=5 |
5 |
Correct |
1 ms |
204 KB |
ans=YES N=9 |
6 |
Correct |
1 ms |
204 KB |
ans=YES N=5 |
7 |
Correct |
0 ms |
204 KB |
ans=NO N=9 |
8 |
Correct |
0 ms |
332 KB |
ans=NO N=10 |
9 |
Correct |
0 ms |
332 KB |
ans=YES N=10 |
10 |
Correct |
1 ms |
204 KB |
ans=YES N=10 |
11 |
Correct |
0 ms |
204 KB |
ans=YES N=10 |
12 |
Correct |
0 ms |
204 KB |
ans=YES N=9 |
13 |
Correct |
0 ms |
332 KB |
ans=YES N=9 |
14 |
Correct |
0 ms |
204 KB |
ans=YES N=8 |
15 |
Correct |
1 ms |
332 KB |
ans=YES N=8 |
16 |
Correct |
0 ms |
204 KB |
ans=NO N=2 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
ans=YES N=1 |
2 |
Correct |
0 ms |
204 KB |
ans=YES N=4 |
3 |
Correct |
0 ms |
204 KB |
ans=NO N=4 |
4 |
Correct |
0 ms |
204 KB |
ans=YES N=5 |
5 |
Correct |
1 ms |
204 KB |
ans=YES N=9 |
6 |
Correct |
1 ms |
204 KB |
ans=YES N=5 |
7 |
Correct |
0 ms |
204 KB |
ans=NO N=9 |
8 |
Correct |
0 ms |
332 KB |
ans=NO N=10 |
9 |
Correct |
0 ms |
332 KB |
ans=YES N=10 |
10 |
Correct |
1 ms |
204 KB |
ans=YES N=10 |
11 |
Correct |
0 ms |
204 KB |
ans=YES N=10 |
12 |
Correct |
0 ms |
204 KB |
ans=YES N=9 |
13 |
Correct |
0 ms |
332 KB |
ans=YES N=9 |
14 |
Correct |
0 ms |
204 KB |
ans=YES N=8 |
15 |
Correct |
1 ms |
332 KB |
ans=YES N=8 |
16 |
Correct |
0 ms |
204 KB |
ans=NO N=2 |
17 |
Correct |
0 ms |
332 KB |
ans=YES N=17 |
18 |
Incorrect |
0 ms |
332 KB |
Added cell 24 (-1,1) not reachable from infinity |
19 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
ans=YES N=1 |
2 |
Correct |
0 ms |
204 KB |
ans=YES N=4 |
3 |
Correct |
0 ms |
204 KB |
ans=NO N=4 |
4 |
Correct |
0 ms |
204 KB |
ans=YES N=5 |
5 |
Correct |
1 ms |
204 KB |
ans=YES N=9 |
6 |
Correct |
1 ms |
204 KB |
ans=YES N=5 |
7 |
Correct |
0 ms |
204 KB |
ans=NO N=9 |
8 |
Correct |
0 ms |
332 KB |
ans=NO N=10 |
9 |
Correct |
0 ms |
332 KB |
ans=YES N=10 |
10 |
Correct |
1 ms |
204 KB |
ans=YES N=10 |
11 |
Correct |
0 ms |
204 KB |
ans=YES N=10 |
12 |
Correct |
0 ms |
204 KB |
ans=YES N=9 |
13 |
Correct |
0 ms |
332 KB |
ans=YES N=9 |
14 |
Correct |
0 ms |
204 KB |
ans=YES N=8 |
15 |
Correct |
1 ms |
332 KB |
ans=YES N=8 |
16 |
Correct |
0 ms |
204 KB |
ans=NO N=2 |
17 |
Correct |
0 ms |
332 KB |
ans=YES N=17 |
18 |
Incorrect |
0 ms |
332 KB |
Added cell 24 (-1,1) not reachable from infinity |
19 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
6 ms |
1188 KB |
ans=NO N=1934 |
2 |
Correct |
2 ms |
460 KB |
ans=NO N=1965 |
3 |
Incorrect |
4 ms |
684 KB |
Contestant's solution is not lexicographically largest at index 1824 (1813 vs 595) |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
204 KB |
ans=YES N=1 |
2 |
Correct |
0 ms |
204 KB |
ans=YES N=4 |
3 |
Correct |
0 ms |
204 KB |
ans=NO N=4 |
4 |
Correct |
0 ms |
204 KB |
ans=YES N=5 |
5 |
Correct |
1 ms |
204 KB |
ans=YES N=9 |
6 |
Correct |
1 ms |
204 KB |
ans=YES N=5 |
7 |
Correct |
0 ms |
204 KB |
ans=NO N=9 |
8 |
Correct |
0 ms |
332 KB |
ans=NO N=10 |
9 |
Correct |
0 ms |
332 KB |
ans=YES N=10 |
10 |
Correct |
1 ms |
204 KB |
ans=YES N=10 |
11 |
Correct |
0 ms |
204 KB |
ans=YES N=10 |
12 |
Correct |
0 ms |
204 KB |
ans=YES N=9 |
13 |
Correct |
0 ms |
332 KB |
ans=YES N=9 |
14 |
Correct |
0 ms |
204 KB |
ans=YES N=8 |
15 |
Correct |
1 ms |
332 KB |
ans=YES N=8 |
16 |
Correct |
0 ms |
204 KB |
ans=NO N=2 |
17 |
Correct |
0 ms |
332 KB |
ans=YES N=17 |
18 |
Incorrect |
0 ms |
332 KB |
Added cell 24 (-1,1) not reachable from infinity |
19 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
246 ms |
15896 KB |
ans=NO N=66151 |
2 |
Correct |
99 ms |
6168 KB |
ans=NO N=64333 |
3 |
Incorrect |
207 ms |
11892 KB |
Contestant's solution is not lexicographically largest at index 69316 (69235 vs 58547) |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
6 ms |
1188 KB |
ans=NO N=1934 |
2 |
Correct |
2 ms |
460 KB |
ans=NO N=1965 |
3 |
Incorrect |
4 ms |
684 KB |
Contestant's solution is not lexicographically largest at index 1824 (1813 vs 595) |
4 |
Halted |
0 ms |
0 KB |
- |