Submission #1190708

#TimeUsernameProblemLanguageResultExecution timeMemory
1190708simona1230Horses (IOI15_horses)C++20
34 / 100
1594 ms12168 KiB
#include "horses.h"
#include<bits/stdc++.h>
using namespace std;

static FILE *_inputFile, *_outputFile;

const int mod=1e9+7;

long long n,x[500001],y[500001];

long long answer()
{
    if(n==1)return x[0]*y[0]%mod;
    long long curr=0,id=0;
    for(int i=n-1;i>=0;i--)
    {
        if(curr<y[i])
            id=i,curr=x[i]*y[i];
            else curr*=x[i];
        if(curr>1e9)break;
        ///fprintf(_outputFile,"%d ",curr);
    }
    long long ans=1;
    for(int i=0;i<=id;i++)
    {
        ans*=x[i];
        ans%=mod;
    }

    return ans*y[id]%mod;
}

int init(int N, int X[], int Y[])
{
    n=N;
    for(int i=0;i<N;i++)
        x[i]=X[i],y[i]=Y[i];
    return answer();
}



int updateX(int pos, int val)
{
    x[pos]=val;
	return answer();
}

int updateY(int pos, int val)
{
    y[pos]=val;
	return answer();
}
#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...