답안 #524621

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
524621 2022-02-09T16:50:51 Z ammar2000 Building Skyscrapers (CEOI19_skyscrapers) C++17
8 / 100
246 ms 15896 KB
#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 -