Submission #1313508

#TimeUsernameProblemLanguageResultExecution timeMemory
1313508activedeltorreHorses (IOI15_horses)C++20
34 / 100
13 ms4796 KiB
#include "horses.h"
#include<iostream>
#include<cmath>
using namespace std;
int n;
int x[10005];
long double v1[10005];
long double v2[10005];
int y[10005];
long long mod=1e9+7;
long long eval()
{
    long double best=-1,spar=0;
    long long sparprod=1,bestprod=1;
    for(int i=0;i<n;i++)
    {
        spar=spar+v1[i];
        sparprod=(1ll*sparprod*x[i])%mod;
        if(spar+v2[i]>=best)
        {
            best=spar+v2[i];
            bestprod=(1ll*sparprod*y[i])%mod;
        }
    }
    return bestprod%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];
        v1[i]=log((long double)x[i]);
        v2[i]=log((long double)y[i]);
    }
    //cout<<log(1000000000);
	return eval();
}

int updateX(int pos, int val) {

    x[pos]=val;
    v1[pos]=log((long double)x[pos]);
	return eval();
}

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