# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
574395 | 2022-06-08T13:14:00 Z | wjajjsasqq | 사탕 분배 (IOI21_candies) | C++17 | 104 ms | 8808 KB |
#include "candies.h" #include <algorithm> #include <cstdio> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2") const int INF = 1070000000; const int N = 200008; int n, a[N], c[N], C, res[N]; long long inc[N]; std::vector<int> distribute_candies(std::vector<int> c_, std::vector<int> l, std::vector<int> r, std::vector<int> v) { n = (int)c_.size(); std::vector<int> ans(n); if (n <= 2000 && l.size() <= 2000) { for (int i = 0; i < n; ++i) c[i] = c_[i]; for (int i = 0; i < (int)l.size(); ++i) { int ll = l[i], rr = r[i] + 1, d = v[i]; for (int j = ll; j < rr; ++j) a[j] += d; if (d > 0) { for (int j = ll; j < rr; ++j) a[j] = a[j] < c[j] ? a[j] : c[j]; } else { for (int j = ll; j < rr; ++j) a[j] = a[j] < 0 ? 0 : a[j]; } } for (int i = 0; i < n; ++i) ans[i] = a[i]; } else { bool pos = 1; for (int i = 0; i < (int)v.size(); ++i) if (v[i] < 0) pos = 0; if (pos) { for (int i = 0; i < (int)l.size(); ++i) { inc[l[i]] += v[i]; inc[r[i] + 1] -= v[i]; } for (int i = 0; i < n; ++i) { if (i) inc[i] += inc[i - 1]; ans[i] = std::min((long long)c[i], inc[i]); } } else { C = c_[0]; for (int i = 0; i < (int)l.size(); ++i) { int ll = l[i], rr = r[i] + 1, d = v[i]; //for (int j = ll; j < rr; ++j) res[j] += d; if (d < 0) { for (int j = 0; j < n; ++j) res[j] = res[j] + d < 0 ? 0 : res[j] + d; } else { for (int j = 0; j < n; ++j) res[j] = res[j] + d < C ? res[j] + d : C; } } for (int j = 0; j < n; ++j) ans[j] = res[j]; } } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 1 ms | 340 KB | Output is correct |
5 | Correct | 2 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 104 ms | 8808 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 98 ms | 5044 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Incorrect | 84 ms | 4940 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 340 KB | Output is correct |
4 | Correct | 1 ms | 340 KB | Output is correct |
5 | Correct | 2 ms | 340 KB | Output is correct |
6 | Incorrect | 104 ms | 8808 KB | Output isn't correct |
7 | Halted | 0 ms | 0 KB | - |