제출 #1270919

#제출 시각아이디문제언어결과실행 시간메모리
1270919nerrrmin사탕 분배 (IOI21_candies)C++20
0 / 100
44 ms7492 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; const int maxn = 2005; int n, q; long long t[maxn * 4]; long long ql, qr, upd_val; void update(int i, int l, int r) { if(qr < l || ql > r)return; if(ql <= l && r <= qr) { t[i] += upd_val; return; } int mid = (l + r)/2; update(2*i, l, mid); update(2*i+1, mid+1, r); } int pos; long long collect(int i, int l, int r) { if(l == r) { return t[i]; } int mid = (l + r)/2; if(pos <= mid)return t[i] + collect(2*i, l, mid); else return t[i] + collect(2*i+1, mid+1, r); } std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) { n = c.size(); q = l.size(); std::vector<int> s(n, 0); for (int i = 0; i < q; ++ i) { ql = l[i]; qr = r[i]; upd_val = v[i]; update(1, 0, n-1); } for (int i = 0; i < n; ++ i) { pos = i; s[i] = min(1LL * c[i], collect(1, 0, n-1)); } return s; }
#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...