Submission #229287

# Submission time Handle Problem Language Result Execution time Memory
229287 2020-05-04T05:43:37 Z 534351 Lokahian Relics (FXCUP4_lokahia) C++17
77 / 100
6 ms 640 KB
#include "lokahia.h"
#include <bits/stdc++.h>

using namespace std;

template<class T, class U>
void ckmin(T &a, U b)
{
    if (a > b) a = b;
}

template<class T, class U>
void ckmax(T &a, U b)
{
    if (a < b) a = b;
}

#define MP make_pair
#define PB push_back
#define LB lower_bound
#define UB upper_bound
#define fi first
#define se second
#define SZ(x) ((int) (x).size())
#define ALL(x) (x).begin(), (x).end()
#define FOR(i, a, b) for (auto i = (a); i < (b); i++)
#define FORD(i, a, b) for (auto i = (a) - 1; i >= (b); i--)

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<pii> vpi;
typedef vector<pll> vpl;

int FindBase(int N)
{
    int maj = -1, cnt = 0;
    FOR(i, 0, N - 1)
    {
        if (cnt == 0)
        {
            maj = i;
            cnt++;
        }
        else
        {
            int w = CollectRelics(maj, i);
            if (w == -1)
            {
                cnt--;
            }
            else
            {
                maj = i;
                cnt++;
            }
        }
    }
    if (cnt == 0) maj = N - 1;
    cnt = 1;
    int net = 1;
    int res = maj;
    FOR(i, 0, N)
    {
        if (i == maj) continue;
        int w = CollectRelics(maj, i);
        if (w != -1)
        {
            cnt++;
            if (w == res)
            {
                net++;
            }
            else
            {
                net--;
                if (net == 0) res = w;
            }
        }
    }
    return ((cnt > N / 2) ? res : -1);
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 512 KB Correct : C = 0
2 Correct 4 ms 512 KB Correct : C = 7
3 Correct 5 ms 640 KB Correct : C = 298
4 Correct 5 ms 512 KB Correct : C = 223
5 Correct 5 ms 384 KB Correct : C = 235
6 Correct 5 ms 640 KB Correct : C = 228
7 Partially correct 5 ms 640 KB Partially correct : C = 380
8 Partially correct 5 ms 640 KB Partially correct : C = 309
9 Partially correct 5 ms 640 KB Partially correct : C = 389
10 Partially correct 5 ms 640 KB Partially correct : C = 317
11 Correct 5 ms 512 KB Correct : C = 235
12 Partially correct 6 ms 640 KB Partially correct : C = 397
13 Partially correct 5 ms 640 KB Partially correct : C = 395
14 Partially correct 5 ms 640 KB Partially correct : C = 395
15 Correct 5 ms 512 KB Correct : C = 177
16 Partially correct 5 ms 640 KB Partially correct : C = 383
17 Correct 5 ms 640 KB Correct : C = 224
18 Partially correct 5 ms 640 KB Partially correct : C = 384
19 Correct 5 ms 640 KB Correct : C = 297
20 Correct 5 ms 512 KB Correct : C = 237
21 Correct 5 ms 512 KB Correct : C = 228
22 Partially correct 5 ms 640 KB Partially correct : C = 384
23 Correct 5 ms 384 KB Correct : C = 178
24 Partially correct 5 ms 640 KB Partially correct : C = 388
25 Partially correct 5 ms 640 KB Partially correct : C = 397
26 Partially correct 5 ms 640 KB Partially correct : C = 384
27 Correct 5 ms 512 KB Correct : C = 234