Submission #597110

#TimeUsernameProblemLanguageResultExecution timeMemory
597110ApiramHorses (IOI15_horses)C++14
34 / 100
1584 ms12216 KiB
#include "horses.h" #include <bits/stdc++.h> using namespace std; const int mod = 1e9 + 7; vector<int>x,y; int solve(){ int N = (int)x.size(); vector<long long>numhorse(N + 1,0); numhorse[0] = 1; for (int i = 0;i<N;++i){ numhorse[i + 1] = (numhorse[i] * x[i])%mod; } int ans = 0; //(numhorse[i + 1] * Y[i] > y[j] * number of horse[j + 1] long long maxxy = y[N - 1],index = N - 1; ans = (numhorse[N] * y[N - 1])%mod; for (int i = N - 1;i>=1;--i){ long long temp = 1; bool ok = true; for (int j = i;j <=index;++j){ temp = (temp * x[j]); if (temp > 1e9)ok = false; } //cout<<temp<<" "<<Y[i - 1] / Y[index]<<" "<<i<<" "<<maxxy<<" "<<index<<'\n'; if (y[i - 1] > maxxy && (ok && temp * y[index] <= y[i - 1])){ maxxy = y[i - 1]; index = i - 1; ans = (numhorse[i] * y[i - 1])%mod; } } return ans; } int init(int N, int X[], int Y[]) { for (int i = 0;i<N;++i){ x.push_back(X[i]); y.push_back(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:17:32: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   17 |  ans = (numhorse[N] * y[N - 1])%mod;
      |        ~~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp:23:8: warning: conversion from 'long long int' to 'double' may change value [-Wconversion]
   23 |    if (temp > 1e9)ok = false;
      |        ^~~~
horses.cpp:29:34: warning: conversion from '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} to 'int' may change value [-Wconversion]
   29 |    ans = (numhorse[i] * y[i - 1])%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...