Submission #395188

#TimeUsernameProblemLanguageResultExecution timeMemory
395188syl123456Painting Walls (APIO20_paint)C++17
12 / 100
58 ms13652 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; int minimumInstructions( int N, int M, int K, std::vector<int> C, std::vector<int> A, std::vector<std::vector<int>> B) { vector<vector<int>> mp(K); for (int i = 0; i < M; ++i) for (int j : B[i]) mp[j].push_back(i); int cnt = 0, ptr = 0; while (ptr < N) { if (mp[C[ptr]].empty()) return -1; int l = ptr, r = ptr; while (ptr - l < M - 1 && l > 0 && ptr - (l - 1) == (mp[C[ptr]].back() - mp[C[l - 1]].back() + (mp[C[ptr]].back() - mp[C[l - 1]].back() < 0 ? M : 0))) --l; while (r - ptr < M - 1 && r < N - 1 && r + 1 - ptr == (mp[C[r + 1]].back() - mp[C[ptr]].back() + (mp[C[r + 1]].back() - mp[C[ptr]].back() < 0 ? M : 0))) ++r; if (r - l + 1 < M) return -1; ++cnt, ptr = r + 1; } return cnt; }
#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...