답안 #590690

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
590690 2022-07-06T08:42:51 Z Drew_ 게임 (IOI13_game) C++17
63 / 100
12361 ms 256000 KB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

#define mp make_pair
#define f1 first
#define s2 second

using ii = pair<int, int>;
using ll = long long;

inline ll gcd(ll X, ll Y) {
    ll tmp;
    while (X != Y && Y != 0) {
        tmp = X;
        X = Y;
        Y = tmp % Y;
    }
    return X;
}

int R, C;
map<ll, ll> st; 
void init(int r, int c) 
{
    R = r; C = c;
}

inline ll get(int a, int b)
{
    if (!st.count(2ll * a*C + b))
        return 0;
    return st[2ll * a*C + b];
}

void update(int P, int Q, ll K) 
{
    int _P = P + R, _Q = Q + C;
    for (int i = _P; i > 0; i >>= 1)
    {
        for (int j = _Q; j > 0; j >>= 1)
        {
            if (i == _P && j == _Q) st[2ll * i*C + j] = K;
            else if (i == _P) st[2ll * i*C + j] = gcd(get(i, j << 1), get(i, j << 1 | 1));
            else if (j == _Q) st[2ll * i*C + j] = gcd(get(i << 1, j), get(i << 1 | 1, j));
            else st[2ll * i*C + j] = gcd(gcd(get(i, j << 1), get(i, j << 1 | 1)), gcd(get(i << 1, j), get(i << 1 | 1, j)));
        }
    }
}

ll calculate(int P, int Q, int U, int V) 
{
    ll res = 0;
    for (P += R, U += R+1; P < U; P >>= 1, U >>= 1)
    {
        if (P & 1)
        {
            for (int l = Q+C, r = V+C+1; l < r; l >>= 1, r >>= 1)
            {
                if (l & 1) res = gcd(res, get(P, l++));
                if (r & 1) res = gcd(res, get(P, --r));
            }
            P++;
        }
        if (U & 1)
        {
            --U;
            for (int l = Q+C, r = V+C+1; l < r; l >>= 1, r >>= 1)
            {
                if (l & 1) res = gcd(res, get(U, l++));
                if (r & 1) res = gcd(res, get(U, --r));
            }
        }
    } 
    return res;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 4 ms 428 KB Output is correct
3 Correct 3 ms 468 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 3 ms 428 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 212 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 2 ms 340 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 2403 ms 21460 KB Output is correct
5 Correct 1476 ms 21848 KB Output is correct
6 Correct 1982 ms 18912 KB Output is correct
7 Correct 2504 ms 18536 KB Output is correct
8 Correct 1194 ms 12032 KB Output is correct
9 Correct 2293 ms 18664 KB Output is correct
10 Correct 2207 ms 18292 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 4 ms 468 KB Output is correct
3 Correct 4 ms 468 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 3 ms 424 KB Output is correct
7 Correct 1 ms 300 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 2 ms 340 KB Output is correct
12 Correct 4965 ms 27872 KB Output is correct
13 Correct 3706 ms 11108 KB Output is correct
14 Correct 1814 ms 1848 KB Output is correct
15 Correct 4599 ms 15460 KB Output is correct
16 Correct 2079 ms 35880 KB Output is correct
17 Correct 3447 ms 21844 KB Output is correct
18 Correct 5894 ms 36340 KB Output is correct
19 Correct 5178 ms 36556 KB Output is correct
20 Correct 5134 ms 35708 KB Output is correct
21 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 4 ms 468 KB Output is correct
3 Correct 4 ms 468 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 4 ms 428 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
11 Correct 2 ms 340 KB Output is correct
12 Correct 2340 ms 21424 KB Output is correct
13 Correct 1482 ms 22088 KB Output is correct
14 Correct 1978 ms 18836 KB Output is correct
15 Correct 2509 ms 18924 KB Output is correct
16 Correct 1146 ms 12184 KB Output is correct
17 Correct 2191 ms 18708 KB Output is correct
18 Correct 2158 ms 18596 KB Output is correct
19 Correct 4953 ms 27988 KB Output is correct
20 Correct 3675 ms 11180 KB Output is correct
21 Correct 1850 ms 1776 KB Output is correct
22 Correct 4641 ms 15568 KB Output is correct
23 Correct 1969 ms 35920 KB Output is correct
24 Correct 3380 ms 21856 KB Output is correct
25 Correct 5956 ms 36504 KB Output is correct
26 Correct 5178 ms 36540 KB Output is correct
27 Correct 5147 ms 35836 KB Output is correct
28 Runtime error 12308 ms 256000 KB Execution killed with signal 9
29 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 3 ms 468 KB Output is correct
3 Correct 3 ms 468 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 3 ms 468 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 3 ms 468 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 2 ms 340 KB Output is correct
12 Correct 2337 ms 20700 KB Output is correct
13 Correct 1472 ms 20972 KB Output is correct
14 Correct 2020 ms 18120 KB Output is correct
15 Correct 2574 ms 17868 KB Output is correct
16 Correct 1123 ms 11460 KB Output is correct
17 Correct 2155 ms 17960 KB Output is correct
18 Correct 2382 ms 17620 KB Output is correct
19 Correct 4895 ms 27104 KB Output is correct
20 Correct 3661 ms 10400 KB Output is correct
21 Correct 1820 ms 1440 KB Output is correct
22 Correct 4572 ms 14736 KB Output is correct
23 Correct 2008 ms 35148 KB Output is correct
24 Correct 3356 ms 21276 KB Output is correct
25 Correct 5879 ms 35420 KB Output is correct
26 Correct 5163 ms 35704 KB Output is correct
27 Correct 5094 ms 35072 KB Output is correct
28 Runtime error 12361 ms 256000 KB Execution killed with signal 9
29 Halted 0 ms 0 KB -