Submission #399309

# Submission time Handle Problem Language Result Execution time Memory
399309 2021-05-05T14:46:15 Z proma Painting Walls (APIO20_paint) C++17
0 / 100
1 ms 204 KB
#include <bits/stdc++.h>

using namespace std;

bool bin_search (vector <int> &V, int val) {
    int l = 0, r = int(V.size()) - 1;
    while (l <= r) {
        int m = (l + r) / 2;
        if (V[m] == val) return true;
        if (V[m] < val) l = m + 1;
        else r = m - 1;
    }
    return false;
}

int minimumInstructions (int N, int M, int K, vector <int> C, vector <int> A, vector <vector<int>> B) {
    int P[N], L[N], G[N+M];

    for (int i = 0; i < M; i ++) {
        sort(B[i].begin(), B[i].end());
    }

    memset(P, 0, sizeof(P));
    for (int y = 0; y <= N - M; y ++) {
        for (int x = 0; x < M; x ++) {
            if (bin_search(B[x], C[y])) {
                for (int l = 1; l < M; l ++) {
                    int flag = 0;
                    if (!bin_search(B[(x + l) % M], C[y + l])) {
                        flag = 1;
                        break;
                    }
                    if (!flag) {
                        P[y] = 1;
                    }
                }
            }
        }
    }

    if (P[0]) L[0] = 0;
    else L[0] = -1e9;
    for (int i = 1; i < N; i ++) {
        if (P[i]) L[i] = i;
        else L[i] = L[i-1];
    }

    for (int i = N + M - 1; i >= N; i --) {
        G[i] = 0;
    }
    for (int i = N - 1; i >= 0; i --) {
        if (i - L[i] >= M) {
            return -1;
        }
        G[i] = 1 + G[L[i] + M];
    }

    return G[0];
}
/*
void solve () {
    int N, M, K;
    vector <int> C, A;
    vector <vector<int>> B;

    cin >> N >> M >> K;

    C.resize(N);
    A.resize(M);
    B.resize(M);

    for (int i = 0; i < N; i ++) {
        cin >> C[i];
    }
    for (int i = 0; i < M; i ++) {
        cin >> A[i];
        B[i].resize(A[i]);
        for (int j = 0; j < A[i]; j ++) {
            cin >> B[i][j];
        }
    }

    cout << minimumInstructions(N, M, K, C, A, B) << endl;
}

int main () {

    solve();

    return 0;
}
*/
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -