제출 #1225387

#제출 시각아이디문제언어결과실행 시간메모리
1225387VMaksimoski008모자이크 (IOI24_mosaic)C++20
22 / 100
85 ms17480 KiB
#include "mosaic.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const int N = 2e5 + 5; int H[4][N], V[N][4]; int get(int r, int c) { if(r < 4) return H[r][c]; if(c < 4) return V[r][c]; if(r <= c) return H[3][c-r+3]; return V[r-c+3][3]; } vector<ll> mosaic(vector<int> x, vector<int> y, vector<int> t, vector<int> b, vector<int> l, vector<int> r) { int n = x.size(), q = t.size(); vector<ll> ans(q); for(int i=0; i<n; i++) { H[0][i] = x[i]; V[i][0] = y[i]; if(i < 4) H[i][0] = y[i]; if(i < 4) V[0][i] = x[i]; } for(int i=1; i<4; i++) for(int j=1; j<n; j++) H[i][j] = (H[i-1][j] + H[i][j-1] == 0); for(int j=1; j<4; j++) for(int i=1; i<n; i++) V[i][j] = (V[i-1][j] + V[i][j-1] == 0); for(int i=0; i<q; i++) ans[i] = get(t[i], l[i]); return ans; }
#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...