#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define arr array<int, 5>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
int N = 1<<20;
vector<int> bmin(2*N, 0);
vector<int> badd(2*N, 0);
void update(int curr, int l, int r, int a, int b, int add, int dd)
{
if (r<=a || l>=b)
{
bmin[curr] += add;
badd[curr] += add;
return;
}
if (a<=l && r<=b)
{
add+=dd;
bmin[curr] += add;
badd[curr] += add;
return;
}
int m = (l+r)/2;
add+=badd[curr];
badd[curr] = 0;
update(curr*2, l, m, a, b, add, dd);
update(curr*2+1, m, r, a, b, add, dd);
bmin[curr] = min(bmin[curr*2], bmin[curr*2+1]);
}
int finde(int pos)
{
int curr = 1;
int sol = 2*1e9+1;
int add = 0;
for (int i = 19; i >= 0; i--)
{
add += badd[curr];
curr*=2;
if (pos < (1<<i)) continue;
pos -= 1<<i;
sol = min(sol, bmin[curr]+add);
curr++;
}
return sol;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int x, y;
cin >> x >> y;
int b, n;
cin >> b >> n;
vector<arr> ele(n);
for (int i= 0; i < n; i++)
{
int x1, y1, x2, y2, c;
cin >> x1 >> y1 >> x2 >> y2 >> c;
x1--; y1--; x2--; y2--;
ele[i] = {x1, y1, x2, y2, c};
}
int sum = 0;
for (int i = 19; i >= 0; i--)
{
sum += 1<<i;
vector<vector<arr>> begin(1e6);
vector<vector<arr>> ende(1e6);
bmin.assign(2*N, 0);
badd.assign(2*N, 0);
for (int j = 0; j < n; j++)
{
begin[max(0, ele[j][0]-sum+1)].push_back({max(0, ele[j][1]-sum+1), ele[j][3], ele[j][4]});
ende[ele[j][2]].push_back({max(0, ele[j][1]-sum+1), ele[j][3], ele[j][4]});
}
int mn = 2*1e9+1;
int u = 0;
for (int j = 0; j < x-sum+1; j++)
{
for (arr ele2:begin[j]) update(1, 0, N, ele2[0], ele2[1]+1, 0, ele2[2]);
if (u)
{
mn = min(mn, finde(y-sum+1));
u=0;
}
for (arr ele2:ende[j])
{
u=1;
update(1, 0, N, ele2[0], ele2[1]+1, 0, -ele2[2]);
}
}
if (mn > b) sum -= 1<<i;
}
cout << sum;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
219 ms |
63912 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
204 ms |
64016 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
209 ms |
63888 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
177 ms |
63864 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
241 ms |
64008 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
64012 KB |
Output is correct |
2 |
Correct |
267 ms |
64080 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
270 ms |
63944 KB |
Output is correct |
2 |
Correct |
252 ms |
64032 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
428 ms |
64576 KB |
Output is correct |
2 |
Correct |
327 ms |
64532 KB |
Output is correct |
3 |
Correct |
229 ms |
64492 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
456 ms |
65564 KB |
Output is correct |
2 |
Correct |
515 ms |
65380 KB |
Output is correct |
3 |
Correct |
473 ms |
65324 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
710 ms |
66124 KB |
Output is correct |
2 |
Correct |
557 ms |
65908 KB |
Output is correct |
3 |
Incorrect |
284 ms |
66108 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
939 ms |
66592 KB |
Output is correct |
2 |
Correct |
1105 ms |
66608 KB |
Output is correct |
3 |
Incorrect |
881 ms |
66644 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1054 ms |
67216 KB |
Output is correct |
2 |
Correct |
1387 ms |
66892 KB |
Output is correct |
3 |
Incorrect |
1387 ms |
66860 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5074 ms |
83064 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5086 ms |
89772 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5029 ms |
94908 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |