제출 #1190577

#제출 시각아이디문제언어결과실행 시간메모리
1190577epicci23Mosaic (IOI24_mosaic)C++20
22 / 100
191 ms204248 KiB
#include "bits/stdc++.h" #include "mosaic.h" #define all(v) v.begin() , v.end() #define sz(a) (int)a.size() using namespace std; const int N = 5005; int n, q; int row[N], col[N]; int ar[N][N], dp_ar[N][N]; long long calc(int t, int b, int l, int r){ return dp_ar[b][r] - dp_ar[b][l - 1] - dp_ar[t - 1][r] + dp_ar[t - 1][l - 1]; } vector<long long> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R) { n = sz(X); for(int i = 1; i <= n; i++) col[i] = X[i - 1]; for(int i = 1; i <= n; i++) row[i] = Y[i - 1]; for(int i = 1; i <= n; i++){ for(int 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); } } q = sz(B); vector<long long> ans(q, 0); for(int i = 0 ; i < q; i++){ int t = T[i], b = B[i], l = L[i], r = R[i]; ans[i] = calc(t + 1, b + 1, l + 1, r + 1); } return ans; } /*void _(){ int _n, _q; cin >> _n; vector<int> xd1(_n, 0), xd2(_n, 0); for(int i = 0; i < _n; i++) cin >> xd1[i]; for(int i = 0; i < _n; i++) cin >> xd2[i]; cin >> _q; vector<int> T(_q),B(_q),L(_q),R(_q); for(int i=0;i<_q;i++){ cin >> T[i] >> B[i] >> L[i] >> R[i]; } vector<long long> res = mosaic(xd1,xd2,T,B,L,R); for(int i = 0; i < sz(res); i++) cout << res[i] << '\n'; } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); int tc=1;//cin >> tc; while(tc--) _(); return 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...