Submission #137283

# Submission time Handle Problem Language Result Execution time Memory
137283 2019-07-27T11:53:30 Z abacaba cmp (balkan11_cmp) C++14
100 / 100
2256 ms 84016 KB
#include "cmp.h"
#include <bits/stdc++.h>
using namespace std;

const int num[4] = {12, 10, 8, 6};
const int st[4] = {480, 48, 6, 1};
const int ind[4] = {100, 200, 300, 400};
vector <int> uniq[4096];
bool flag;

void remember(int n) {
    if(!flag) {
        flag = true;
        for(int i = 0; i < 4096; ++i) {
            int now = i, base = 1;
            for(int j = 0; j < 4; ++j) {
                int x = now / st[j];
                uniq[i].push_back(ind[j] + x);
                now %= st[j];
            }
        }
    }
    for(int i = 0; i < uniq[n].size(); ++i)
        bit_set(uniq[n][i]);
}

int compare(int b) {
    for(int i = 0; i < uniq[b].size(); ++i) {
        int ost = uniq[b][i] - ind[i];
        if(bit_get(ost + ind[i]))
            continue;
        if(ost + ost < num[i]) {
            --ost;
            for(; ost >= 0; --ost)
                if(bit_get(ost + ind[i]))
                    return 1;
            return -1;
        }
        else {
            ++ost;
            for(; ost < num[i]; ++ost)
                if(bit_get(ost + ind[i]))
                    return -1;
            return 1;
        }
    }
    return 0;
}

Compilation message

cmp.cpp: In function 'void remember(int)':
cmp.cpp:15:26: warning: unused variable 'base' [-Wunused-variable]
             int now = i, base = 1;
                          ^~~~
cmp.cpp:23:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < uniq[n].size(); ++i)
                    ~~^~~~~~~~~~~~~~~~
cmp.cpp: In function 'int compare(int)':
cmp.cpp:28:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < uniq[b].size(); ++i) {
                    ~~^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2256 ms 84016 KB Output is correct - maxAccess = 10, score = 100