Submission #1302997

#TimeUsernameProblemLanguageResultExecution timeMemory
1302997Muhammad_AneeqBuilding Skyscrapers (CEOI19_skyscrapers)C++20
54 / 100
371 ms105472 KiB
#include <bits/stdc++.h> using namespace std; inline void solve() { int n,t; cin>>n>>t; int r[n],c[n]; map<pair<int,int>,int>pre,ind; for (int i=0;i<n;i++) { cin>>r[i]>>c[i]; pre[{r[i],c[i]}]=1; ind[{r[i],c[i]}]=i+1; } pair<int,int>cur={1e9,1e9}; for (int i=0;i<n;i++) { pair<int,int>f={r[i],c[i]}; cur=min(cur,f); } vector<int>ans; set<pair<int,int>>S; S.insert(cur); pre[cur]=0; while (S.size()) { pair<int,int>g=*begin(S); S.erase(g); ans.push_back(ind[g]); for (int i=-1;i<=1;i++) { for (int j=-1;j<=1;j++) { pair<int,int>f={g.first+i,g.second+j}; if (pre[f]) { pre[f]=0; S.insert(f); } } } } if (ans.size()!=n) { cout<<"NO\n";return; } cout<<"YES\n"; for (auto i:ans) cout<<i<<'\n'; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; for (int i=1;i<=t;i++) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...