Submission #681108

#TimeUsernameProblemLanguageResultExecution timeMemory
681108Cross_RatioNuclearia (CEOI15_nuclearia)C++14
15 / 100
1099 ms80712 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") using namespace std; long long int A[2500002][2]; long long int B[2500002][2]; array<long long int, 4> C[200005]; signed main() { cin.sync_with_stdio(false); cin.tie(0); cout.tie(0); int W, H; cin >> W >> H; int i, j; int N; cin >> N; for(i=0;i<N;i++) { cin >> C[i][0] >> C[i][1] >> C[i][2] >> C[i][3]; C[i][0]--, C[i][1]--; for(j=0;j<W;j++) { for(register int k = 0; 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=0;i<W;i++) { for(j=0;j<H;j++) { B[i][j] = (i?B[i-1][j]:0) + (j?B[i][j-1]:0) - ((long long int)i*j?B[i-1][j-1]:0) + A[i][j]; } } int Q; cin >> Q; while(Q--) { long long int a, b, c, d; cin >> a >> b >> c >> d; a--, b--, c--, d--; long long int val = B[c][d] - (a?B[a-1][d]:0) - (b?B[c][b-1]:0) + (a*b?B[a-1][b-1]:0); //cout << val << '\n long long int x = (c-a+1)* (d-b+1); long long int y = val / x; if(2*(val % x) >= x) y++; cout << y << '\n'; } }

Compilation message (stderr)

nuclearia.cpp: In function 'int main()':
nuclearia.cpp:29:76: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
   29 |             B[i][j] = (i?B[i-1][j]:0) + (j?B[i][j-1]:0) - ((long long int)i*j?B[i-1][j-1]:0) + A[i][j];
      |                                                            ~~~~~~~~~~~~~~~~^~
nuclearia.cpp:38:77: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
   38 |         long long int val = B[c][d] - (a?B[a-1][d]:0) - (b?B[c][b-1]:0) + (a*b?B[a-1][b-1]:0);
      |                                                                            ~^~
#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...