Submission #1134396

#TimeUsernameProblemLanguageResultExecution timeMemory
1134396AiperiiiNaval battle (CEOI24_battle)C++20
46 / 100
1264 ms1114112 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back #define ff first #define ss second #define all(x) x.begin(),x.end() using namespace std; const int N=2e5+5; vector <int> ind[4]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n; cin>>n; vector <int> x(n),y(n),ok(n,1); vector <char> d(n); for(int i=0;i<n;i++){ cin>>x[i]>>y[i]>>d[i]; if(d[i]=='N'){ ind[0].pb(i); } else if(d[i]=='S'){ ind[1].pb(i); } else if(d[i]=='E'){ ind[2].pb(i); } else{ ind[3].pb(i); } } vector <pair <int,pair <int,int> > > v; for(auto i : ind[0]){ for(auto j : ind[2]){ if(x[i]-x[j]==y[i]-y[j]){ if(x[i]-x[j]>0)v.pb({x[i]-x[j],{i,j}}); } } for(auto j : ind[3]){ if(x[j]-x[i]==y[i]-y[j]){ if(x[j]-x[i]>0)v.pb({x[j]-x[i],{i,j}}); } } } for(auto i : ind[1]){ for(auto j : ind[2]){ if(x[i]-x[j]==y[j]-y[i]){ if(x[i]-x[j]>0)v.pb({x[i]-x[j],{i,j}}); } } for(auto j : ind[3]){ if(x[j]-x[i]==y[j]-y[i]){ if(x[j]-x[i]>0)v.pb({x[j]-x[i],{i,j}}); } } } for(auto i : ind[0]){ for(auto j : ind[1]){ if(abs(x[i]-x[j])==0){ if((y[i]-y[j])>0) v.pb({(y[i]-y[j])/2,{i,j}}); } } } for(auto i : ind[2]){ for(auto j : ind[3]){ if(abs(y[i]-y[j])==0){ if(x[j]-x[i]>0) v.pb({(x[j]-x[i])/2,{i,j}}); } } } sort(all(v)); vector <int> pr; int val=0; for(auto x : v){ // cout<<x.ff<<" "<<x.ss.ff<<" "<<x.ss.ss<<"\n"; if(val!=x.ff){ val=x.ff; for(auto i : pr){ ok[i]=0; } pr.clear(); } if(ok[x.ss.ff] && ok[x.ss.ss]){ pr.pb(x.ss.ff); pr.pb(x.ss.ss); } } for(auto i : pr){ ok[i]=0; } int ans=0; for(int i=0;i<n;i++){ if(ok[i])cout<<i+1<<"\n"; } } /* */
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...