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>
#define int long long
using namespace std;
const int MAX_N = 200005;
const int MOD = 998244353;
vector<vector<int>>grid, pref;
void solve() {
int w, h;
cin >> w >> h;
grid.assign(w, vector<int>(h, 0));
pref.assign(w, vector<int>(h, 0));
int n;
cin >> n;
for(int i=0; i<n; ++i) {
int x, y, a, b;
cin >> x >> y >> a >> b;
--x, --y;
int cnt = a/b;
for(int j=max(0LL, x-cnt); j<=min(w-1, x+cnt); ++j) {
for(int k=max(0LL, y-cnt); k<=min(h-1, y+cnt); ++k) {
grid[j][k] += max(0LL,a - b * max(abs(k-y), abs(j-x)));
}
}
}
for(int i=w-1; i>=0; --i) {
for(int j=h-1; j>=0; --j) {
pref[i][j] = grid[i][j];
if(j+1<h) pref[i][j] += pref[i][j+1];
if(i+1<w) pref[i][j] += pref[i+1][j];
if(i+1<w && j+1<h) pref[i][j] -= pref[i+1][j+1];
}
}
int q;
cin >> q;
while(q--) {
long double x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
--x1, --y1, --x2, --y2;
long double sum = pref[x1][y1];
if(x2+1<w) sum -= pref[x2+1][y1];
if(y2+1<h) sum -= pref[x1][y2+1];
if(x2+1<w && y2+1<h) sum += pref[x2+1][y2+1];
long double x = sum/((x2-x1+1)*(y2-y1+1));
cout << lround(x) << endl;
}
}
signed main() {
int t = 1;
while(t--) solve();
return 0;
}
# | 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... |