Submission #1269200

#TimeUsernameProblemLanguageResultExecution timeMemory
1269200jojeonghoon벽 칠하기 (APIO20_paint)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <vector>
#include <map>
#include <set>
#define int long long
using namespace std;

const int LM=100100;
int N,M,K;
vector<int> C, A;
vector<vector<int>>B, E;
int D[LM], w[LM], ch[LM];
vector<int> pr;

void F(int x, int color){
    int d=0;
    
    for(int i:E[color]){
        int t=(i-x+M+N)%M;
        ch[t]=1;
        d=max(++w[t], d);
    }
    D[x]=d;
    
    for(int i:pr) if(!ch[i]) w[i]=0;
    pr.clear();
    for(int i:E[color]){
        ch[i]=0;
        pr.push_back(i);
    }
}

int minimumInstructions(int N_, int M_, int K_, vector<int> C_, vector<int>A_, vector<vector<int>>B_){
    N=N_, M=M_, K=K_, C=C_, A=A_, B=B_;
    
    E.assign(K, {});
    
    for(int i=0; i<M; i++){
        for(int j=0; j<A[i]; j++){
            E[B[i][j]].push_back(i);
        }
    }
    
    for(int i=0; i<N; i++){
        F(i, C[i]);
        if(D[i]==0) return -1;
    }
    
    int k=0;
    
    for(int i=0; i<N; i++){
        k++;
        if(D[i] >= D[i+1]){
            if(D[i]<M) return -1;
            
            if(D[i+1] <= k%M){
                k = (k+M-1)/M*M;
            }
        }
    }
    
    return (k+M-1)/M;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cciMpIS5.o: in function `main':
grader.cpp:(.text.startup+0x278): undefined reference to `minimumInstructions(int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >)'
collect2: error: ld returned 1 exit status