# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
386983 | 2021-04-07T18:37:18 Z | rainboy | Painting Walls (APIO20_paint) | C++17 | 0 ms | 0 KB |
#include "paint.h" #include <vector> const int N = 100000, K = 100000; int minimumInstructions(int n, int m, int k, std::vector<int> aa, std::vector<int> kk, std::vector<std::vector<int>> aaa) { static int jj[K]; int h, i, i_, j, ans; memset(jj, -1, m * sizeof *jj); for (j = 0; j < m; j++) for (h = 0; h < kk[j]; h++) jj[aaa[j][h]] = j; for (i = 0; i < n; i++) if (jj[aa[i]] == -1) return 0; ans = 0; for (i = 0; i < n; i = i_) { i_ = i + 1; while (i_ < n && (jj[aa[i_ - 1]] + 1) % m == jj[aa[i_]]) i_++; if (i_ - i < m) return -1; ans += (i_ - i + m - 1) / m; } return ans; }