Submission #801960

#TimeUsernameProblemLanguageResultExecution timeMemory
801960jlallas384Horses (IOI15_horses)C++17
0 / 100
1565 ms12148 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int mod = 1e9 + 7;

vector<int> x, y;
int n;

int solve(){
	int ans = 0;
	int hv = 1;
	for(int i = 0; i < n; i++){
		hv = (ll) hv * x[i] % mod;
		if(y[i] > y[i + 1]){
			ans = (ans + ll(hv - 1 + mod) % mod * y[i]) % mod;
			hv = 1;
		}
	}
	return ans;
}

int init(int N, int X[], int Y[]) {
	n = N;
	x.resize(n), y.resize(n);
	for(int i = 0; i < n; i++){
		x[i] = X[i];
		y[i] = Y[i];
	}
	y.push_back(-1);
	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:14:23: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   14 |   hv = (ll) hv * x[i] % mod;
      |        ~~~~~~~~~~~~~~~^~~~~
horses.cpp:16:48: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   16 |    ans = (ans + ll(hv - 1 + mod) % mod * 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...