제출 #1164274

#제출 시각아이디문제언어결과실행 시간메모리
1164274dragstGarden (JOI23_garden)C++20
15 / 100
274 ms20408 KiB
#include <bits/stdc++.h> using namespace std; const long long inf=1e9; long long d, p[500005], q[500005], r[500005], s[500005], id[500005], nxt[5005], pre[5005], check[5005], check2[5005], mn; vector<long long> v1, v2, v[5005]; bool sortt(long long x, long long y) {return p[x]<p[y];} void build() { mn=1e9; long long n=v2.size(), i; for (i=1; i<n; i++) { check[v2[i]]=check2[v2[i]]; pre[v2[i]]=v2[i-1]; nxt[v2[i-1]]=v2[i]; mn=min(mn, v2[i-1]+d-v2[i]+1); }; pre[v2[0]]=v2[n-1]; nxt[v2[n-1]]=v2[0]; check[v2[0]]=check2[v2[0]]; mn=min(mn, v2[n-1]-v2[0]+1); } void del(long long x) { mn=min(mn, (pre[x]+d-nxt[x])%d+1); pre[nxt[x]]=pre[x]; nxt[pre[x]]=nxt[x]; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); long long n, m, i, j, ans=inf; cin >> n >> m >> d; for (i=1; i<=n; i++) { cin >> p[i] >> q[i]; id[i]=i; v1.push_back(p[i]); v2.push_back(q[i]); check2[q[i]]++; }; sort(id+1, id+n+1, sortt); for (i=1; i<=m; i++) { cin >> r[i] >> s[i]; v1.push_back(r[i]); v2.push_back(s[i]); v[r[i]].push_back(s[i]); check2[s[i]]++; }; sort(v1.begin(), v1.end()); v1.erase(unique(v1.begin(), v1.end()), v1.end()); sort(v2.begin(), v2.end()); v2.erase(unique(v2.begin(), v2.end()), v2.end()); for (i=0; i<d; i++) { sort(v[i].begin(), v[i].end()); v[i].erase(unique(v[i].begin(), v[i].end()), v[i].end()); }; j=1; p[0]=p[id[n]]-d; q[0]=q[id[n]]-d; for (auto x: v1) { while (j<=n && p[id[j]]<x) {j++;}; build(); for (i=x; i<x+d; i++) { for (auto y: v[i%d]) { check[y]--; if (check[y]==0) {del(y);}; }; if (i-d>=p[id[j-1]]) {ans=min(ans, (i-x+1)*mn);}; }; }; cout << ans; }
#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...