Submission #848659

#TimeUsernameProblemLanguageResultExecution timeMemory
848659AndreiGarden (JOI23_garden)C++17
0 / 100
159 ms6712 KiB
#include <bits/stdc++.h> using namespace std; int n,m,d; vector <int> apx(10000,-1); vector <int> apy(10000,-1); vector <int> cnt(510005,0); int main() { cin>>n>>m>>d; int cntdx=0; int cntdy=0; for(int i=1; i<=n; i++) { int p,q; cin>>p>>q; if(apx[p]==-1) cntdx++; apx[p]=apx[p+d]=p; if(apy[q]==-1) cntdy++; apy[q]=apy[q+d]=q; } for(int i=1; i<=m; i++) { int r,s; cin>>r>>s; if(apx[d+i]==-1) cntdx++; apx[r]=apx[r+d]=d+i; if(apy[d+i]==-1) cntdy++; apy[s]=apy[s+d]=d+i; } int l=-1,c=-1,ll=-1,cc=-1; int minim=2*d+1; int j=-1; int cntd=0; for(int i=0; i<d; i++) { while(j+1<2*d && cntd<cntdx) { j++; if(apx[j]>=0) { if(cnt[apx[j]]==0) cntd++; cnt[apx[j]]++; } } if(cntd==cntdx) { if(j-i+1<minim) { minim=j-i+1; l=i; ll=j; } } if(apx[i]>=0) { if(cnt[apx[i]]==1) cntd--; cnt[apx[i]]--; } } fill(cnt.begin(),cnt.end(),0); minim=2*d+1; j=-1; cntd=0; for(int i=0; i<d; i++) { while(j+1<2*d && cntd<cntdy) { j++; if(apy[j]>=0) { if(cnt[apy[j]]==0) cntd++; cnt[apy[j]]++; } } if(cntd==cntdy) { if(j-i+1<minim) { minim=j-i+1; c=i; cc=j; } } if(apy[i]>=0) { if(cnt[apy[i]]==1) cntd--; cnt[apy[i]]--; } } cout<<(ll-l+1)*(cc-c+1)<<"\n"; 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...