Submission #1225864

#TimeUsernameProblemLanguageResultExecution timeMemory
1225864paskalisapoPainting Walls (APIO20_paint)C++20
0 / 100
0 ms328 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;
        }
        int start = colourlike[C[index]];
        int cur = start + 1;
        index++;
        if(index == N) {
            index = 0;
            stop = true;
        }
        while(cur < start + M) {
            if(colourlike[C[index]] != (cur % M)) {
                return -1;
            }
            index++;
            cur++;
            if(index == N) {
                stop = true;
                index = 0;
            }
        }
        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...