Submission #1317996

#TimeUsernameProblemLanguageResultExecution timeMemory
1317996foxsergMosaic (IOI24_mosaic)C++20
22 / 100
1202 ms2162688 KiB
#include <bits/stdc++.h> #include "mosaic.h" using namespace std; using ll = long long; 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(); int q = T.size(); int A[n][n]; for (int i = 0; i < n; ++i) { A[0][i] = X[i]; } for (int i = 0; i < n; ++i) { A[i][0] = Y[i]; } for (int i = 1; i < n; ++i) { for (int j = 1; j < n; ++j) { if (A[i - 1][j] || A[i][j - 1]) { A[i][j] = 0; } else { A[i][j] = 1; } } } int pref[n + 1][n + 1]; for (int i = 0; i <= n; ++i) { pref[0][i] = 0; pref[i][0] = 0; } for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { pref[i][j] = pref[i - 1][j] + pref[i][j - 1] - pref[i - 1][j - 1] + A[i - 1][j - 1]; } } vector <ll> C(q); for (int i = 0; i < q; ++i) { C[i] = pref[B[i] + 1][R[i] + 1]; C[i] -= pref[B[i] + 1][L[i]]; C[i] -= pref[T[i]][R[i] + 1]; C[i] += pref[T[i]][L[i]]; } return C; }
#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...