#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define arr array<int, 5>
#pragma GCC optimize("Ofast")
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 = 20; 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;
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]);
mn = min(mn, finde(y-sum+1));
for (arr ele2:ende[j]) 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 |
228 ms |
63856 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
264 ms |
63928 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
235 ms |
64048 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
206 ms |
63836 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
286 ms |
64016 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
301 ms |
64056 KB |
Output is correct |
2 |
Correct |
628 ms |
64020 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
668 ms |
64032 KB |
Output is correct |
2 |
Correct |
350 ms |
63948 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
444 ms |
64512 KB |
Output is correct |
2 |
Correct |
333 ms |
64516 KB |
Output is correct |
3 |
Correct |
293 ms |
64464 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
433 ms |
65500 KB |
Output is correct |
2 |
Correct |
493 ms |
65508 KB |
Output is correct |
3 |
Correct |
451 ms |
65484 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
788 ms |
66148 KB |
Output is correct |
2 |
Correct |
994 ms |
65792 KB |
Output is correct |
3 |
Correct |
290 ms |
66024 KB |
Output is correct |
4 |
Correct |
1241 ms |
65900 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1041 ms |
66512 KB |
Output is correct |
2 |
Correct |
1343 ms |
66312 KB |
Output is correct |
3 |
Correct |
612 ms |
66808 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
836 ms |
67516 KB |
Output is correct |
2 |
Correct |
1493 ms |
66976 KB |
Output is correct |
3 |
Correct |
1517 ms |
67064 KB |
Output is correct |
4 |
Correct |
1609 ms |
67036 KB |
Output is correct |
5 |
Correct |
1482 ms |
67092 KB |
Output is correct |
6 |
Correct |
546 ms |
67280 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5030 ms |
82808 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5085 ms |
92380 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5046 ms |
104044 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |