Submission #830377

#TimeUsernameProblemLanguageResultExecution timeMemory
830377mindiyakHorses (IOI15_horses)C++14
34 / 100
1588 ms14284 KiB
#include "horses.h"
#include <vector>
#include <iostream>
 
using namespace std;
typedef long long ll;
 
vector<ll> x;
vector<ll> y;
int n;
int M = 1e9+7;
 
ll multi(ll a,ll b){
	return ((a%M)*(b%M))%M;
}
 
int calc(){
	int MX_pos = 0;
	ll cur = 1;

	for(int i=1;i<n;i++){
		ll multiply = cur*x[i];
		if(multiply*y[i]>=y[MX_pos]){
			MX_pos = i;
			cur=1;
		}else{
			cur=multiply;
		}
	}

	ll MX = 1;
	for(int i=0;i<MX_pos+1;i++){
		MX = multi(MX,x[i]);
	}
	int ans = multi(MX,y[MX_pos]);
	return ans;
}
 
int init(int N, int X[], int Y[]) {
	n = N;
	for(int i=0;i<N;i++)x.push_back(X[i]);
	for(int i=0;i<N;i++)y.push_back(Y[i]);
 
	return calc();
}
 
int updateX(int pos, int val) {	
	x[pos]=val;
	return calc();
}
 
int updateY(int pos, int val) {
	y[pos]=val;
	return calc();
}

Compilation message (stderr)

horses.cpp: In function 'int calc()':
horses.cpp:35:17: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   35 |  int ans = multi(MX,y[MX_pos]);
      |            ~~~~~^~~~~~~~~~~~~~
#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...