#include<bits/stdc++.h>
using namespace std;
#define int long long
struct Node{
int val, lazy;
Node (int _val=0){
val=_val, lazy=0;
}
void merge(const Node &tl, const Node &tr){
val=min(tl.val, tr.val);
}
};
struct SegmentTree{
vector<Node> t;
int n;
void init(int _n){
n=_n;
t.assign(4*n+1, Node());
}
void apply(int k, int val){
t[k].val+=val;
t[k].lazy+=val;
}
void push(int k){
if (t[k].lazy){
apply(k<<1, t[k].lazy);
apply(k<<1|1, t[k].lazy);
t[k].lazy=0;
}
}
void update(int k, int l, int r, int L, int R, int val){
if (r<L || R<l) return;
if (L<=l && r<=R){
apply(k, val);
return;
}
push(k);
int mid=(l+r)>>1;
update(k<<1, l, mid, L, R, val);
update(k<<1|1, mid+1, r, L, R, val);
t[k].merge(t[k<<1], t[k<<1|1]);
}
int get(int k, int l, int r, int L, int R){
if (r<L || R<l) return 1e18;
if (L<=l && r<=R) return t[k].val;
push(k);
int mid=(l+r)>>1;
return min(get(k<<1, l, mid, L, R), get(k<<1|1, mid+1, r, L, R));
}
} st;
struct Rect{
int x1, y1, x2, y2, z;
Rect(){ x1=0, y1=0, x2=0, y2=0, z=0; }
};
const int N=1e6+10;
int m, n, p, q;
Rect a[N], b[N];
vector<pair<int, pair<int, int>>> events[N];
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> p >> q >> m >> n;
st.init(q);
for (int i=1; i<=n; ++i) cin >> a[i].x1 >> a[i].y1 >> a[i].x2 >> a[i].y2 >> a[i].z;
int l=1, r=min(p, q);
while (l<=r){
int mid=(l+r)>>1;
for (int i=1; i<=n; ++i){
events[max(1ll, a[i].x1-mid+1)].push_back({a[i].z, {max(1ll, a[i].y1-mid+1), a[i].y2}});
events[a[i].x2+1].push_back({-a[i].z, {max(1ll, a[i].y1-mid+1), a[i].y2}});
}
bool check=0;
for (int i=1; i<=q+1; ++i){
for (auto &j:events[i]) st.update(1, 1, q, j.second.first, j.second.second, j.first);
if (i+mid-1<=p){
check|=st.get(1, 1, q, 1, q-mid+1)<=m;
}
events[i].clear();
events[i].shrink_to_fit();
}
if (check) l=mid+1;
else r=mid-1;
}
cout << r << '\n';
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
101980 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
101980 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
102236 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
25 ms |
102748 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
110 ms |
108528 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
351 ms |
164696 KB |
Output is correct |
2 |
Correct |
1190 ms |
164700 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1165 ms |
164892 KB |
Output is correct |
2 |
Correct |
479 ms |
164696 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
41 ms |
103328 KB |
Output is correct |
2 |
Correct |
62 ms |
103004 KB |
Output is correct |
3 |
Correct |
52 ms |
103000 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
279 ms |
109560 KB |
Output is correct |
2 |
Correct |
311 ms |
109444 KB |
Output is correct |
3 |
Correct |
276 ms |
109468 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
882 ms |
166332 KB |
Output is correct |
2 |
Incorrect |
36 ms |
110172 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1198 ms |
166756 KB |
Output is correct |
2 |
Correct |
1728 ms |
166552 KB |
Output is correct |
3 |
Correct |
808 ms |
166996 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1030 ms |
167272 KB |
Output is correct |
2 |
Correct |
1898 ms |
166648 KB |
Output is correct |
3 |
Correct |
2300 ms |
166736 KB |
Output is correct |
4 |
Correct |
2070 ms |
166668 KB |
Output is correct |
5 |
Correct |
2218 ms |
166648 KB |
Output is correct |
6 |
Correct |
753 ms |
167068 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5039 ms |
177484 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5067 ms |
184068 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
5070 ms |
190392 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |