# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1126627 | brinton | Game (IOI13_game) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
// #define MAX_COORD (long long)(1e9)
#define MAX_COORD (long long)(7)
// 1D(only j)
struct Node1D{
Node1D* lc;
Node1D* rc;
int val;
Node1D(){
lc = nullptr;
rc = nullptr;
val = 0;
}
};
void pull1D(Node1D* curr){
int l = (curr->lc == nullptr)?0:curr->lc->val;
int r = (curr->rc == nullptr)?0:curr->rc->val;
curr->val = gcd(l,r);
}
void modify1D(Node1D* curr,int l,int r,int tar,int nv){
if(l == r){
curr->val = nv;
return;
}
int m = (l+r)/2;
if(tar <= m){
// update left
if(curr->lc == nullptr) curr->lc = new Node1D();