제출 #742848

#제출 시각아이디문제언어결과실행 시간메모리
742848t6twotwoDistributing Candies (IOI21_candies)C++17
3 / 100
113 ms8808 KiB
#include "candies.h" #include <bits/stdc++.h> using namespace std; using ll = long long; std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l, std::vector<int> r, std::vector<int> v) { int n = c.size(); int m = v.size(); for (auto &x : r) { x++; } if (n <= 2000 && m <= 2000) { vector<int> a(n); for (int i = 0; i < m; i++) { for (int j = l[i]; j < r[i]; j++) { a[j] = min(c[j], max(a[j] + v[i], 0)); } } return a; } if (*min_element(v.begin(), v.end()) > 0) { vector<ll> pfs(n + 1); for (int i = 0; i < m; i++) { pfs[l[i]] -= v[i]; pfs[r[i]] += v[i]; } for (int i = 0; i < n; i++) { pfs[i + 1] += pfs[i]; } vector<int> a(n); for (int i = 0; i < n; i++) { a[i] = min(1LL * c[i], pfs[i + 1]); } return a; } return {}; }
#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...