# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
538569 | FatihSolak | Nuclearia (CEOI15_nuclearia) | C++17 | 1091 ms | 244848 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main(){
#ifdef Local
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
bool swp = 0;
int w,h;
scanf("%d %d",&w,&h);
if(w < h){
swp = 1;
swap(w,h);
}
long long arr[h+5][2*h+w+5];
long long pre[h+5][2*h+w+5];
for(int i=0;i<h+5;i++){
for(int j = 0;j<2*h+w+5;j++){
arr[i][j] = pre[i][j] = 0;
}
}
int n;
scanf("%d ",&n);
for(int i=0;i<n;i++){
int x,y,a,b;
scanf("%d %d %d %d",&x,&y,&a,&b);
if(swp)swap(x,y);
x += 2*h;
for(int i=1;i<=h;i++){
int dif = abs(y-i);
if(dif * b > a)continue;
arr[i][max(1,x-dif+1)] -= b;
arr[i][max(1,x-(a/b))] += b;
arr[i][max(1,x-(a/b))] += a - b*(x - max(1,x-(a/b)) + 1);
arr[i][max(1,x-(a/b)) + 1] -= a - b*(x - max(1,x-(a/b)) + 1);
arr[i][min(w+2*h+1,x+dif+1)] -= b;
arr[i][min(w+2*h+1,x+(a/b)+1)] += b;
arr[i][min(w+2*h+1,x+(a/b)+1)] -= a%b;
arr[i][min(w+2*h+1,x+(a/b)+2)] += a%b;
}
}
for(int i=1;i<=h;i++){
for(int j=1;j<=w+2*h;j++){
arr[i][j] += arr[i][j-1];
}
for(int j=1;j<=w+2*h;j++){
arr[i][j] += arr[i][j-1];
//cout << arr[i][j] << " ";
}
//cout << endl;
}
for(int i=1;i<=h;i++){
for(int j=2*h+1;j<=w+2*h;j++){
pre[i][j] = pre[i-1][j] + pre[i][j-1] - pre[i-1][j-1]+arr[i][j];
}
}
int q;
scanf("%d",&q);
while(q--){
int x1,y1,x2,y2;
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
if(!swp)swap(x1,y1),swap(x2,y2);
y1 += 2*h;
y2 += 2*h;
long double cnt = (x2-x1+1) * (y2 -y1+1);
long long x = ((pre[x2][y2] - pre[x2][y1-1] - pre[x1 -1][y2] + pre[x1-1][y1-1] + cnt/2)/cnt);
printf("%lld\n",x);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |