Submission #1022298

#TimeUsernameProblemLanguageResultExecution timeMemory
1022298vjudge1Nuclearia (CEOI15_nuclearia)C++17
15 / 100
1061 ms61420 KiB
#include <iostream> //#include <bits/stdc++.h> #include <iomanip> #include <cmath> #include <vector> #include <algorithm> #include <queue> #include <string> #include <set> #include <map> using namespace std; typedef long long ll; typedef pair<int, int> pi; typedef vector<pi> vpi; typedef vector<ll> vi; typedef vector<bool> vb; const ll mm = 1000000007; const int maxn = 2e5 + 1; ll near(ll a, ll b) { double a1 = a, b1 = b; double d = a1 / b1; if (d - floor(d) < 0.5) { return floor(d); } else return ceil(d); } int main() { ios::sync_with_stdio(false); cin.tie(NULL); ll w, h; cin >> w >> h; //radimo sucaj h=1 vector<vi> p(h, vi(w)); ll n; cin >> n; ll xn, yn, a, b; for (int i = 0; i < n; i++) { cin >> xn >> yn >> a >> b; --yn, --xn; ll maxd = (a / b)+1; ll dis, xc = xn - maxd; for (xc; xc <= xn + maxd; xc++) { if (xc < 0) xc=-1; else if (xc > w - 1) xc = xn + maxd + 1; else { dis = abs(xc - xn); ll k = a - b * dis; if (k < 0) k = 0; p[0][xc] += k; } } } vector<vi> dp(h, vi(w)); dp[0][0] = p[0][0]; for (int j = 1; j < w; j++) { dp[0][j] = p[0][j] + dp[0][j - 1]; } for (int i = 1; i < h; i++) { for (int j = 0; j < w; j++) { if (j == 0) { dp[i][j] = p[i][j] + dp[i - 1][j]; } else { dp[i][j] = p[i][j] + dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1]; } } } ll q; cin >> q; while (q--) { ll x1, x2, y1, y2; cin >> x1 >> y1 >> x2 >> y2; x1--; x2--; y1--; y2--; ll A = (y2 - y1 + 1) * (x2 - x1 + 1); ll S = 0; S += dp[y2][x2]; if (x1 == 0 and y1 == 0) { } else if (x1 == 0) { S -= dp[y1 - 1][x2]; } else if (y1 == 0) { S -= dp[y2][x1 - 1]; } cout << near(S, A) << endl; } return 0; }

Compilation message (stderr)

nuclearia.cpp: In function 'int main()':
nuclearia.cpp:45:14: warning: statement has no effect [-Wunused-value]
   45 |         for (xc; xc <= xn + maxd; xc++) {
      |              ^~
#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...