Submission #795504

#TimeUsernameProblemLanguageResultExecution timeMemory
795504jasminHorses (IOI15_horses)C++17
34 / 100
1593 ms8892 KiB
#include "horses.h" #include<bits/stdc++.h> using namespace std; const long long MOD=1e9+7; int n=0; vector<int> x; vector<int> y; bool bigger(pair<int, long long> a, pair<int, long long> b){ return a.first*b.second > a.second*b.first; } int solveSlow(){ long long p=1; bool mod=false; pair<int, long long> maxi={1, 1}; int ind=n-1; for(int i=n-1; i>=0; i--){ if(!mod){ if(bigger({y[i], p}, maxi)){ maxi={y[i], p}; ind=i; } } p*=(long long)x[i]; if(p > MOD){ p%=MOD; mod=true; } } long long ans=1; for(int i=0; i<=ind; i++){ ans *= (long long)x[i]; ans%=MOD; } ans *= (long long)y[ind]; ans%=MOD; return ans; } int init(int N, int X[], int Y[]) { n=N; x.assign(n, 0); y.assign(n, 0); for(int i=0; i<N; i++){ x[i]=X[i]; y[i]=Y[i]; } return solveSlow(); } int updateX(int pos, int val) { x[pos]=val; return solveSlow(); } int updateY(int pos, int val) { y[pos]=val; return solveSlow(); }

Compilation message (stderr)

horses.cpp: In function 'int solveSlow()':
horses.cpp:48:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   48 |     return ans;
      |            ^~~
#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...