#include "candies.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 10;
const ll inf = 1e18;
int n, q;
vector < int > s;
ll pref[maxn];
vector < int > add[maxn], rem[maxn];
vector<int> distribute_candies(vector<int> c, vector<int> l,
vector<int> r, vector<int> v)
{
n = c.size();
q = l.size();
s.resize(n, 0);
for (int i = 0; i < q; i ++)
{
add[l[i]].push_back(i);
rem[r[i]].push_back(i);
}
for (int i = 0; i < n; i ++)
{
pref[0] = inf;
pref[1] = 0;
for (int j = 0; j < q; j ++)
{
pref[j + 2] = pref[j + 1];
if (l[j] <= i && r[j] >= i)
{
///cout << "here" << endl;
pref[j + 2] += v[j];
}
}
/**for (int j = 0; j < q + 2; j ++)
cout << pref[j] << " ";
cout << endl;*/
ll max_height = pref[q + 1];
ll min_height = pref[q + 1];
int last = q + 1;
for (int j = q; j >= 0; j --)
{
max_height = max(max_height, pref[j]);
min_height = min(min_height, pref[j]);
///cout << i << " " << max_height << " " << min_height << endl;
last = j;
if (max_height - min_height > c[i])
break;
}
if (max_height == pref[last])
s[i] = pref[q + 1] - min_height;
else
s[i] = pref[q + 1] - (max_height - c[i]);
}
return s;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9684 KB |
Output is correct |
2 |
Correct |
5 ms |
9708 KB |
Output is correct |
3 |
Correct |
6 ms |
9812 KB |
Output is correct |
4 |
Correct |
8 ms |
9816 KB |
Output is correct |
5 |
Correct |
18 ms |
9848 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5061 ms |
25476 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9684 KB |
Output is correct |
2 |
Correct |
2432 ms |
21580 KB |
Output is correct |
3 |
Correct |
1531 ms |
16336 KB |
Output is correct |
4 |
Execution timed out |
5058 ms |
28172 KB |
Time limit exceeded |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9684 KB |
Output is correct |
2 |
Correct |
6 ms |
9684 KB |
Output is correct |
3 |
Correct |
1208 ms |
20328 KB |
Output is correct |
4 |
Correct |
1223 ms |
14224 KB |
Output is correct |
5 |
Execution timed out |
5025 ms |
22768 KB |
Time limit exceeded |
6 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
9684 KB |
Output is correct |
2 |
Correct |
5 ms |
9708 KB |
Output is correct |
3 |
Correct |
6 ms |
9812 KB |
Output is correct |
4 |
Correct |
8 ms |
9816 KB |
Output is correct |
5 |
Correct |
18 ms |
9848 KB |
Output is correct |
6 |
Execution timed out |
5061 ms |
25476 KB |
Time limit exceeded |
7 |
Halted |
0 ms |
0 KB |
- |