Submission #998727

#TimeUsernameProblemLanguageResultExecution timeMemory
998727inesfiHorses (IOI15_horses)C++17
34 / 100
19 ms12372 KiB
#include "horses.h" #include<bits/stdc++.h> using namespace std; #define ll long long const ll TAILLEMAXI=1002,MODULO=1000*1000*1000+7; ll nbannees,deb,avant,meilleur,atester,fin,produit,rep,zero; ll nbmulti[TAILLEMAXI],prix[TAILLEMAXI]; vector<ll> encours; int updateX(int pos, int val); int init (int N, int X[], int Y[]){ //cout<<42<<endl; nbannees=N; for (int iannee=0;iannee<N;iannee++){ nbmulti[iannee]=X[iannee]; prix[iannee]=Y[iannee]; } nbannees++; nbmulti[nbannees-1]=1; prix[nbannees-1]=1; return updateX(0,nbmulti[0]); } int updateX(int pos, int val){ nbmulti[pos]=val; deb=nbmulti[0]; avant=0; meilleur=0; encours.clear(); encours.push_back(0); for (int iannee=1;iannee<nbannees;iannee++){ if (nbmulti[iannee]==1){ if (avant==0){ avant=1; meilleur=prix[iannee]; encours.push_back(iannee); } else { if (prix[iannee]>meilleur){ encours.pop_back(); encours.push_back(iannee); meilleur=prix[iannee]; } } } else { avant=0; encours.push_back(iannee); } } zero=0; atester=max((ll)encours.size()-62,zero); fin=atester+1; produit=1; while (fin<(int)encours.size()){ if (prix[encours[atester]]>=prix[encours[fin]]*produit and prix[encours[atester]]>=prix[encours[fin]]*produit*nbmulti[encours[fin]]){ produit*=nbmulti[encours[fin]]; } else { atester=fin; produit=1; } fin++; } rep=1; for (int i=0;i<=encours[atester];i++){ rep*=nbmulti[i]; rep=rep%MODULO; } rep*=prix[encours[atester]]; rep=rep%MODULO; //for (int i=0;i<(ll)encours.size();i++){ //cout<<encours[i]<<endl; //} //cout<<rep<<endl; return rep; } int updateY(int pos, int val){ prix[pos]=val; return updateX(0,nbmulti[0]); }

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:24:31: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   24 |     return updateX(0,nbmulti[0]);
      |                      ~~~~~~~~~^
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:80:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   80 |     return rep;
      |            ^~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:85:31: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   85 |     return updateX(0,nbmulti[0]);
      |                      ~~~~~~~~~^
#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...