Submission #206095

#TimeUsernameProblemLanguageResultExecution timeMemory
206095SegtreeHorses (IOI15_horses)C++14
17 / 100
1596 ms12152 KiB
#include"horses.h" #include<iostream> #include<algorithm> #include<vector> #include<queue> using namespace std; typedef long long ll; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) #define all(x) x,begin(),x.end() #define rep(i,n) for(int i=0;i<n;i++) #define mod 1000000007 #define mad(a,b) a=(a+b)%mod ll N,X[500010],Y[500010]; int solve(){ ll rui=1,p; for(int i=N-1;i>=0;i--){ rui*=X[i]; if(rui<=(ll)1e9)p=i; else break; } ll ans=Y[p]; rui=1; for(int i=p+1;i<N;i++){ rui*=X[i]; chmax(ans,rui*Y[i]); } ans%=mod; for(int i=0;i<=p;i++)ans=ans*X[i]%mod; return ans; } int init(int n,int x[],int y[]){ N=n; rep(i,N)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(); }/* int main(){ cin>>N; rep(i,N)cin>>X[i]; rep(i,N)cin>>Y[i]; N=1000; rep(i,N)X[i]=1; rep(i,N)Y[i]=rand()%(ll)1e9+1; cout<<init(N,X,Y)<<endl; while(1){ string type; ll pos,val; cin>>type>>pos>>val; if(type=="X")cout<<updateX(pos,val)<<endl; if(type=="Y")cout<<updateY(pos,val)<<endl; } }*/

Compilation message (stderr)

horses.cpp: In function 'int solve()':
horses.cpp:17:13: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
  for(int i=N-1;i>=0;i--){
            ~^~
horses.cpp:24:13: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
  for(int i=p+1;i<N;i++){
            ~^~
horses.cpp:30:9: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
  return ans;
         ^~~
horses.cpp:16:11: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
  ll rui=1,p;
           ^
#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...