Submission #678663

#TimeUsernameProblemLanguageResultExecution timeMemory
678663Dan4LifePainting Walls (APIO20_paint)C++17
0 / 100
1572 ms2644 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; #define pb push_back #define fi first #define se second #define SZ(a) (int)a.size() using vi = vector<int>; const int maxn = (int)1e5+10; const int maxm = (int)5e4+10; const int INF = (int)1e9; int n, m, k, c[maxn]; set<int> S[maxm]; bool works(int x, int y){ for(int l = 0; l < n; l++){ if(!S[x].count(c[y])) return false; x++, y++; if(x>=m) x-=m; if(y>=n-m+1) y-=n-m+1; } return true; } int minimumInstructions(int N, int M, int K, vi C, vi A, vector<vi> B) { n = N, m = M, k = K; for(int i = 0; i < n; i++) c[i] = C[i]; for(int i = 0; i < m; i++) for(auto u : B[i]) S[i].insert(u); int ans = 0; for(int i = 0; i < n; i+=m-1){ bool ok = false; for(int j = 0; j < m; j++){ if(!works(j,i)) continue; ok = true; } if(!ok) return -1; ans++; } return ans; } /* 8 3 5 3 3 1 3 4 4 2 2 3 0 1 2 2 2 3 2 3 4 */
#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...