Submission #1225874

#TimeUsernameProblemLanguageResultExecution timeMemory
1225874paskalisapoPainting Walls (APIO20_paint)C++20
12 / 100
20 ms7240 KiB
#include "paint.h"
using namespace std;

#include <vector>

int minimumInstructions(
       int N, int M, int K, std::vector<int> C,
    std::vector<int> A, std::vector<std::vector<int>> B) {
    
    vector<int> colourlike(K , -1);
    for(int i = 0 ;i < M ; i++) { 
        for(auto &x : B[i]) {
            colourlike[x] = i;
        }
    }

    int index = 0;
    int instr = 0;
    bool stop = false;
    while(index < N) {
        if(colourlike[C[index]] == -1) {
            return -1;
        }
        if(index > N - M) {
	   index = N - M;
	}
        int start = colourlike[C[index]];
        int cur = start + 1;
        index++;
        while(cur < start + M) {
            if(colourlike[C[index]] != (cur % M)) {
                return -1;
            }
            index++;
            cur++;
            if(index == N) {
                if(cur < start + M) {
		   return -1;
		}
		stop = true;
            }
        }
        instr++;
        if(stop) {
            break;
        }
        
    }
    return instr;
}
#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...