Submission #1031371

#TimeUsernameProblemLanguageResultExecution timeMemory
1031371AbitoTiles (BOI24_tiles)C++17
4 / 100
25 ms1784 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define ppb pop_back #define ep insert #define endl '\n' #define elif else if #define pow pwr #define sqrt sqrtt //#define int long long #define ll long long #define y1 YONE typedef unsigned long long ull; using namespace std; const int N=2e5+5; int n,x[N],y[N],m,inp; int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>inp>>m; for (int i=1;i<=inp;i++){ int xx,yy; cin>>xx>>yy; if (i<=2){ x[++n]=xx; y[n]=yy; continue; } if (xx==x[n] && xx==x[n-1]){ x[n]=xx; y[n]=yy; continue; } if (yy==y[n] && yy==y[n-1]){ x[n]=xx; y[n]=yy; continue; } x[++n]=xx; y[n]=yy; } if (n==2){ cout<<m<<endl; return 0; } if (n==4){ sort(x+1,x+1+n); sort(y+1,y+1+n); if (y[1]==y[n]){ cout<<m<<endl; return 0; } if ((y[n]-y[1])&1){ cout<<x[1]<<endl; return 0; } cout<<x[n]-bool((x[n]-x[1])&1)<<endl; return 0; } if (n==6){ pair<int,int> mn={INT_MAX,INT_MAX}; vector<pair<int,int>> v; for (int i=1;i<=n;i++) v.pb({x[i],y[i]}),mn=min(mn,v.back()); while (v[0]!=mn){ v.pb(v[0]); v.erase(v.begin()); } if (v[1].F!=v[0].F) reverse(v.begin()+1,v.end()); //for (auto u:v) cout<<u.F<<' '<<u.S<<endl; int ans=v[0].F; if ((v[1].S-v[0].S)%2==0){ if ((v[2].F-v[0].F)&1){ cout<<v[2].F-1<<endl; return 0; } ans=v[2].F; } else{ cout<<ans<<endl; return 0; } if ((v[4].S-v[0].S)%2==0){ ans=v.back().F-bool((v.back().F-v[0].F)&1); } cout<<ans<<endl; return 0; } return 0; }
#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...