#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL MAXN=200005;
LL x[MAXN],y[MAXN],a[MAXN],b[MAXN];
LL dist(LL ax,LL ay,LL bx,LL by){
return max(abs(ax-bx),abs(ay-by));
}
LL ceiling(LL atas,LL bawah){
return (atas-1)/bawah+1;
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
LL r,c,n,q,x1,y1,x2,y2;
cin >> c >> r >> n;
LL pref[r+5][c+5],prefA[c+5],prefB[c+5],sufA[c+5],sufB[c+5];
memset(pref,0,sizeof(pref));
memset(prefA,0,sizeof(prefA));
memset(prefB,0,sizeof(prefB));
memset(sufA,0,sizeof(sufA));
memset(sufB,0,sizeof(sufB));
for(LL i=1;i<=n;i++)cin >> y[i] >> x[i] >> a[i] >> b[i];
if(r==1){
for(LL i=1;i<=n;i++){
LL brp=ceiling(a[i],b[i]);
prefA[y[i]]+=a[i];
prefB[y[i]]+=b[i];
if(y[i]+brp<=c){
prefA[y[i]+brp]-=(a[i]-brp*b[i]);
prefB[y[i]+brp]-=b[i];
}
}
for(LL i=1;i<=c;i++){
prefA[i]+=(prefA[i-1]-prefB[i-1]);
prefB[i]+=prefB[i-1];
}
for(LL i=1;i<=n;i++){
LL brp=ceiling(a[i],b[i]);
sufA[y[i]]+=a[i];
sufB[y[i]]+=b[i];
if(y[i]-brp>=1){
sufA[y[i]-brp]-=(a[i]-brp*b[i]);
sufB[y[i]-brp]-=b[i];
}
}
for(LL i=c;i>=1;i--){
sufA[i]+=(sufA[i+1]-sufB[i+1]);
sufB[i]+=sufB[i+1];
}
for(LL i=1;i<=c;i++)prefA[i]+=sufA[i];
for(LL i=1;i<=n;i++)prefA[y[i]]-=a[i];
for(LL i=1;i<=c;i++)prefA[i]+=prefA[i-1];
cin >> q;
while(q--){
cin >> y1 >> x1 >> y2 >> x2;
LL bagi=(pref[y2]-pref[y1-1])/(y2-y1+1);
LL sisa=(pref[y2]-pref[y1-1])/(y2-y1+1);
if(sisa>=ceiling(y2-y1+1,2))bagi++;
cout << bagi << '\n';
}
return 0;
}
for(LL i=1;i<=r;i++){
for(LL j=1;j<=c;j++){
for(LL k=1;k<=n;k++)pref[i][j]+=max(0LL,a[k]-b[k]*dist(i,j,x[k],y[k]));
}
}
for(LL i=1;i<=r;i++){
for(LL j=1;j<=c;j++){
pref[i][j]+=pref[i][j-1]+pref[i-1][j]-pref[i-1][j-1];
}
}
cin >> q;
while(q--){
cin >> y1 >> x1 >> y2 >> x2;
LL bagi=(pref[x2][y2]-pref[x1-1][y2]-pref[x2][y1-1]+pref[x1-1][y1-1])/((x2-x1+1)*(y2-y1+1));
LL sisa=(pref[x2][y2]-pref[x1-1][y2]-pref[x2][y1-1]+pref[x1-1][y1-1])%((x2-x1+1)*(y2-y1+1));
if(sisa>=ceiling((x2-x1+1)*(y2-y1+1),2))bagi++;
cout << bagi << '\n';
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
194 ms |
196112 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
195 ms |
196188 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
333 ms |
20340 KB |
Output is correct |
2 |
Correct |
79 ms |
2808 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
314 ms |
24876 KB |
Output is correct |
2 |
Correct |
85 ms |
2808 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
288 ms |
197716 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
168 ms |
80216 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
442 ms |
22512 KB |
Output is correct |
2 |
Correct |
86 ms |
3064 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
444 ms |
45848 KB |
Output is correct |
2 |
Correct |
82 ms |
2808 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
405 ms |
203836 KB |
Output isn't correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
406 ms |
203896 KB |
Output isn't correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1074 ms |
26552 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1064 ms |
26420 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1054 ms |
26944 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1078 ms |
26488 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |