Submission #954456

#TimeUsernameProblemLanguageResultExecution timeMemory
954456irmuunHorses (IOI15_horses)C++17
34 / 100
278 ms13904 KiB
#include<bits/stdc++.h>
#include "horses.h"

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

const int mod=1e9+7,maxn=1e5+5;

int n;
int x[maxn],y[maxn];

int solve(){
    int cnt=1;
    for(int i=0;i<n;i++){
        ll cur=1;
        cnt=1ll*cnt*x[i]%mod;
        bool sell=true;
        for(int j=i+1;j<n;j++){
            cur*=x[j];
            if(cur>(int)1e9){
                sell=false;
                break;
            }
            if(1ll*cur*y[j]>1ll*y[i]){
                sell=false;
                break;
            }
        }
        if(sell){
            return 1ll*cnt*y[i]%mod;
        }
    }
    return 0;
}

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 solve();
}

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

int updateY(int pos,int val){
    y[pos]=val;
    return solve();
}

Compilation message (stderr)

horses.cpp: In function 'int solve()':
horses.cpp:22:25: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   22 |         cnt=1ll*cnt*x[i]%mod;
      |             ~~~~~~~~~~~~^~~~
horses.cpp:36:32: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   36 |             return 1ll*cnt*y[i]%mod;
      |                    ~~~~~~~~~~~~^~~~
#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...