제출 #1242912

#제출 시각아이디문제언어결과실행 시간메모리
1242912MuhammadSaram사탕 분배 (IOI21_candies)C++20
0 / 100
5158 ms2032288 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; #define ll long long vector<int> distribute_candies(vector<int> c, vector<int> l, vector<int> r, vector<int> v) { int n=c.size(),q=l.size(); vector<int> qu[n],ans(n); for (int i=0;i<q;i++) for (int j=l[i];j<=r[i];j++) qu[j].push_back(i); ll pre[q+1]; for (int i=0;i<n;i++) { for(int j=0;j<=q;j++) pre[j]=0; for (int j:qu[i]) pre[j+1]=v[j]; ll mn=0, mx=0; for (int j=1;j<=q;j++) pre[j]+=pre[j-1], mx=max(mx,pre[j]), mn=min(mn,pre[j]); if (mx-mn<=c[i]) { ans[i]=pre[q]-mn; continue; } mn=1e18, mx=0; for (int j=q;j>=0;j--) { ll pmn=mn; mx=max(mx,pre[j]), mn=min(mn,pre[j]); if (mx-mn>c[i]) { if (mn==pmn) ans[i]=pre[q]-mn; else ans[i]=c[i]-mx+pre[q]; break; } } } return 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...