Submission #681091

#TimeUsernameProblemLanguageResultExecution timeMemory
681091Cross_RatioNuclearia (CEOI15_nuclearia)C++14
21 / 100
1105 ms280236 KiB
#include <bits/stdc++.h> #define int long long using namespace std; vector<vector<int>> A, B; array<int, 4> C[200005]; signed main() { cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); int W, H; cin >> W >> H; A.resize(W+1); B.resize(W+1); int i, j; for(i=0;i<W+1;i++) { A[i].resize(H+1); B[i].resize(H+1); } int N; cin >> N; for(i=0;i<N;i++) { cin >> C[i][0] >> C[i][1] >> C[i][2] >> C[i][3]; for(j=1;j<=W;j++) { for(int k = 1; k <= H; k++) { A[j][k] += max(0LL, C[i][2] - max(abs(j-C[i][0]),abs(k-C[i][1])) * C[i][3]); } } } for(i=1;i<=W;i++) { for(j=1;j<=H;j++) { B[i][j] = B[i-1][j] + B[i][j-1] - B[i-1][j-1] + A[i][j]; } } int Q; cin >> Q; while(Q--) { int a, b, c, d; cin >> a >> b >> c >> d; int val = B[c][d] - B[a-1][d] - B[c][b-1] + B[a-1][b-1]; //cout << val << '\n'; int x = (c-a+1)* (d-b+1); int y = val / x; if(2*(val % x) >= x) y++; cout << y << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...