Submission #1225786

#TimeUsernameProblemLanguageResultExecution timeMemory
1225786Godgift42Painting Walls (APIO20_paint)C++20
0 / 100
0 ms328 KiB
#include "paint.h"

#include <vector>
#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<int>lk(K,-1);
        for(int i=0;i<M;i++){
            for(int j=0;j<A[i];j++){
                lk[B[i][j]]=i;
            }
        }
        bool val=1;
        for(int i=0;i<N;i+=M){
            if(lk[C[i]]==-1){
                val=false;
                break;
            }
            int st=lk[C[i]];
            for(int j=1;j<M;j++){
                if(lk[C[(i+j)%N]]==-1){
                    val=false;
                    break;
                }
                if(lk[C[(i+j)%N]]!=(st+j)%M){
                    val=false;
                    break;
                }
            }
            if(!val)break;
        }
        if(val)return (N+M-1)/M;
        else return -1;
}
#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...