Submission #1190565

#TimeUsernameProblemLanguageResultExecution timeMemory
1190565epicci23모자이크 (IOI24_mosaic)C++20
0 / 100
65 ms10048 KiB
#include "bits/stdc++.h" #include "mosaic.h" #define ll long long #define all(v) v.begin() , v.end() #define sz(a) (ll)a.size() using namespace std; const ll N = 5005; ll n, q; ll row[N], col[N]; ll ar[N][N], dp_ar[N][N]; ll calc(ll t, ll b, ll l, ll r){ return dp_ar[b][r] - dp_ar[b][l - 1] - dp_ar[t - 1][r] + dp_ar[t - 1][l - 1]; } vector<ll> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R) { n = sz(X); for(ll i = 1; i <= n; i++) col[i] = X[i - 1]; for(ll i = 1; i <= n; i++) row[i] = Y[i - 1]; for(ll i = 1; i <= n; i++){ for(ll j = 1; j <= n; j++){ if(i == 1) ar[i][j] = col[j]; else if(j == 1) ar[i][j] = row[i]; else ar[i][j] = min(1 - ar[i-1][j], 1 - ar[i][j-1]); dp_ar[i][j] = dp_ar[i-1][j] + dp_ar[i][j-1] - dp_ar[i-1][j-1] + (ar[i][j] == 1); } } vector<ll> ans(q, 0); q = sz(B); for(ll i=1;i<=q;i++){ ll t = T[i-1], b = B[i-1], l = L[i-1], r = R[i-1]; ans[i - 1] = calc(t + 1, b + 1, l + 1, r + 1); } return ans; } /*void _(){ cin >> n; for(ll i = 1; i <= n; i++) cin >> col[i]; for(ll i = 1; i <= n; i++) cin >> row[i]; for(ll i = 1; i <= n; i++){ for(ll j = 1; j <= n; j++){ if(i == 1) ar[i][j] = col[j]; else if(j == 1) ar[i][j] = row[i]; else ar[i][j] = min(1 - ar[i-1][j], 1 - ar[i][j-1]); dp_ar[i][j] = dp_ar[i-1][j] + dp_ar[i][j-1] - dp_ar[i-1][j-1] + (ar[i][j] == 1); } } cin >> q; for(ll i=1;i<=q;i++){ ll t,b,l,r; cin >> t >> b >> l >> r; cout << calc(t, b, l, r) << '\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...