Submission #1225812

#TimeUsernameProblemLanguageResultExecution timeMemory
1225812Godgift42Painting Walls (APIO20_paint)C++20
12 / 100
21 ms7240 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;
        int cnt=0;
        for(int i=0;i<N;i+=0){
            if(lk[C[i]]==-1){
                val=false;
                break;
            }
            int st=lk[C[i]];
            bool pos=false;
            if(i!=0){
              if(lk[C[(i-1)]]==(st+M-1)%M)pos=true;
            }
            cnt++;
            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){
                    if(!pos){
                      val=false;
                      break;
                    }
                    else{
                      i-=M;
                      i+=j;
                      break;
                    }
                }
            }
            i+=M;
            if(!val)break;
        }
        if(val)return cnt;
        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...