Submission #1305484

#TimeUsernameProblemLanguageResultExecution timeMemory
1305484kawhiet모자이크 (IOI24_mosaic)C++20
22 / 100
171 ms34524 KiB
#include <bits/stdc++.h> #include "mosaic.h" using namespace std; vector<long long> 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(); set<int> s; vector<vector<int>> row(3, vector<int>(n)); row[0] = x; row[1][0] = y[1]; row[2][0] = y[2]; for (int i = 1; i < 3; i++) { for (int j = 1; j < n; j++) { row[i][j] = !(row[i - 1][j] | row[i][j - 1]); if (row[i][j]) { s.insert(i - j); } } } vector<vector<int>> col(n, vector<int>(3)); for (int i = 0; i < n; i++) { for (int j = 0; j < 3; j++) { if (j == 0) { col[i][j] = y[i]; continue; } if (i == 0) { col[i][j] = x[j]; continue; } col[i][j] = !(col[i - 1][j] | col[i][j - 1]); if (col[i][j]) { s.insert(i - j); } } } vector<long long> ret; for (int i = 0; i < q; i++) { int t = T[i], b = B[i], l = L[i], r = R[i]; if (t <= 2) { ret.push_back(row[t][l]); } else if (l <= 2) { ret.push_back(col[t][l]); } else { ret.push_back(s.count(t - l)); } } return ret; }
#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...