Submission #730641

#TimeUsernameProblemLanguageResultExecution timeMemory
730641t6twotwoPainting Walls (APIO20_paint)C++17
0 / 100
1 ms212 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; constexpr int inf = 1E6; int minimumInstructions(int N, int M, int K, vector<int> C, vector<int> A, vector<vector<int>> B) { vector<set<int>> D(M); vector<vector<int>> f(K); for (int i = 0; i < M; i++) { for (int x : B[i]) { f[x].push_back(i); D[i].insert(x); } } vector<int> dp(N + 1, inf); dp[0] = 0; for (int i = M - 1; i < N; i++) { auto mn = inf; for (int j = 0; j < M; j++) { mn = min(mn, dp[i - j]); } for (int x : f[C[i]]) { bool ok = 1; for (int j = 1; j < M; j++) { if (!D[(x + j) % M].count(C[i - M + j])) { ok = 0; break; } } if (ok) { dp[i + 1] = mn + 1; break; } } } auto ans = dp[N]; if (ans == inf) { ans = -1; } 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...