Submission #963485

# Submission time Handle Problem Language Result Execution time Memory
963485 2024-04-15T06:58:14 Z simona1230 Game (IOI13_game) C++17
0 / 100
4 ms 16984 KB
#include <bits/stdc++.h>
#include "game.h"
using namespace std;

int r,c;
bool subt1,subt2;

void init(int R,int C)
{
    r=R;
    c=C;
}

long long x,y;
long long p,q,u,v;
long long t[8000][8000];

void upd2(int i,int l,int r,int j)
{
    if(l==r)
    {
        t[j][i]=v;
        return;
    }

    int m=(l+r)/2;
    if(y<=m)upd2(i*2,l,m,j);
    else upd2(i*2+1,m+1,r,j);

    long long lf=t[j][i*2];
    long long rt=t[j][i*2+1];
    if(lf==0)t[j][i]=rt;
    else if(rt==0)t[j][i]=lf;
    else t[j][i]=__gcd(lf,rt);
}

void upd1(int i,int l,int r)
{
    if(l==r)
    {
        upd2(1,0,c-1,i);
        return;
    }

    int m=(l+r)/2;
    if(x<=m)upd1(i*2,l,m);
    else upd1(i*2+1,m+1,r);

    upd2(1,0,c-1,i);
}

long long query2(int i,int l,int r,int ql,int qr,int j)
{
    if(ql>qr)return 0;
    if(ql<=l&&r<=qr)return t[j][i];
    int m=(l+r)/2;
    long long lf=query2(i*2,l,m,ql,min(qr,m),j);
    long long rt=query2(i*2+1,m+1,r,max(ql,m+1),qr,j);
    if(lf==0)return rt;
    if(rt==0)return lf;
    return __gcd(rt,lf);
}

long long query1(int i,int l,int r,int ql,int qr)
{
    if(ql>qr)return 0;
    if(ql<=l&&r<=qr)return query2(1,0,c-1,q,v,i);
    int m=(l+r)/2;
    long long lf=query1(i*2,l,m,ql,min(qr,m));
    long long rt=query1(i*2+1,m+1,r,max(ql,m+1),qr);
    if(lf==0)return rt;
    if(rt==0)return lf;
    return query2(1,0,c-1,q,v,i);
}

void update(int X,int Y,long long V)
{
    x=X;
    y=Y;
    v=V;
    upd1(1,0,r-1);
}

long long calculate(int P,int Q,int U,int V)
{
    u=U;
    v=V;
    return query1(1,0,r-1,p,u);
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 3 ms 16732 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 1 ms 2392 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 2 ms 16732 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 376 KB Output is correct
2 Incorrect 3 ms 16732 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 4 ms 16984 KB Output isn't correct
3 Halted 0 ms 0 KB -