This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
int minimumInstructions(int N, int M, int K, vector<int> C, vector<int> A, vector<vector<int>> B) {
vector<vector<int> > colors(K);
for(int i = 0; i < M; i++)
for(int& a : B[i]) colors[a].push_back(i);
vector<pii> last(M, {0, -3});
vector<bool> start(N, false);
for(int i = 0; i < N; i++){
vector<pii> uj;
uj.reserve(colors[C[i]].size());
for(int& a : colors[C[i]]){
pii here = {a, 1};
if(last[(a+M-1)%M].second == i-1) here.second += last[(a+M-1)%M].first;
uj.push_back(here);
}
for(pii& a : uj){
if(a.second >= M) start[i-M+1] = true;
last[a.first] = {a.second, i};
}
}
vector<int> best(N, -1e9);
for(int i = 0; i < N; i++)
best[i] = max((i > 0 ? best[i-1] : -1e9), (start[i] ? i : -1e9));
int poz = 0, ans = 0;
while(poz < N){
if(poz >= M + best[poz] ) return -1;
poz = best[poz]+M, ans++;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |