Submission #68961

#TimeUsernameProblemLanguageResultExecution timeMemory
68961MKopchevGame (IOI13_game)C++14
37 / 100
13058 ms28980 KiB
#include<bits/stdc++.h>
#include "game.h"
using namespace std;
vector< vector<long long> > tree;
long long my_gcd(long long a,long long b)
{
    if(a==0||b==0)return a+b;
    long long r=a%b;
    while(r)
    {
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}
int r,c;
void init(int R, int C)
{
    r=R;
    c=C;
    int mx=1;
    while(mx<C)mx=mx*2;
    mx=mx*2+5;
    vector<long long> help={};
    for(int j=0;j<mx;j++)help.push_back(0);
    for(int i=0;i<R;i++)
        {
        tree.push_back(help);
        }
}
void my_update(int ind,int node,int l,int r,int pos,long long val)
{
    if(l==r)
    {
        tree[ind][node]=val;
        return;
    }
    int av=(l+r)/2;
    if(pos<=av)my_update(ind,node*2,l,av,pos,val);
    else my_update(ind,node*2+1,av+1,r,pos,val);
    tree[ind][node]=my_gcd(tree[ind][node*2],tree[ind][node*2+1]);
}
void update(int P, int Q, long long K)
{
    my_update(P,1,0,c-1,Q,K);
}
long long my_query(int ind,int node,int l,int r,int lq,int rq)
{
    if(tree[ind][node]==0)return tree[ind][node];
    if(l==lq&&r==rq)return tree[ind][node];
    int av=(l+r)/2;
    long long ans=0;
    if(lq<=av)ans=my_gcd(ans,my_query(ind,node*2,l,av,lq,min(av,rq)));
    if(av<rq)ans=my_gcd(ans,my_query(ind,node*2+1,av+1,r,max(av+1,lq),rq));
    return ans;
}
long long calculate(int P, int Q, int U, int V)
{
    long long ans=0;
    for(int i=P;i<=U;i++)
        ans=my_gcd(ans,my_query(i,1,0,c-1,Q,V));
    return ans;
}
/*
int main()
{
init(2,3);
update(0,0,20);
update(0,2,15);
update(1,1,12);
cout<<calculate(0,0,0,2)<<endl;//5
cout<<calculate(0,0,1,1)<<endl;//4
update(0,1,6);
update(1,1,14);
cout<<calculate(0,0,0,2)<<endl;//1
cout<<calculate(0,0,1,1)<<endl;//2

}
*/

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:18:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
  int res;
      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...