Submission #722748

# Submission time Handle Problem Language Result Execution time Memory
722748 2023-04-12T19:07:20 Z tvladm2009 cmp (balkan11_cmp) C++17
100 / 100
1358 ms 82512 KB
#include <bits/stdc++.h>
#include "cmp.h"

using namespace std;

typedef long long ll;

int v[] = {0, 10, 10, 8, 6};
int p[] = {0, 4800, 480, 48, 6, 1};
int t[] = {0, 1, 11, 21, 29};

void remember(int a) {
    for (int i = 4; i >= 1; i--) {
        int x = (a / p[i + 1]) % v[i];
        bit_set(x + t[i]);
    }
}

int compare(int b) {
    int i = 1, x;
    for (; i <= 4; i++) {
        x = (b / p[i + 1]) % v[i];
        if (bit_get(x + t[i]) == 0) {
            break;
        }
    }
    if (i == 5) {
        return 0;
    }
    int pos = t[i];
    int l = 0, r = v[i] - 1;
    if (x - l < r - x) {
        for (int i = l; i < x; i++) {
            if (bit_get(i + pos) == 1) {
                return 1;
            }
        }
        return -1;
    } else {
        for (int i = r; i > x; i--) {
            if (bit_get(i + pos) == 1) {
                return -1;
            }
        }
        return 1;
    }
}


# Verdict Execution time Memory Grader output
1 Correct 1358 ms 82512 KB Output is correct - maxAccess = 10, score = 100