Submission #1004800

#TimeUsernameProblemLanguageResultExecution timeMemory
1004800magikarp23Horses (IOI15_horses)C++17
0 / 100
1560 ms12124 KiB
#include <bits/stdc++.h> #include "horses.h" using namespace std; const int MAX_N = 500000 + 1; long long MOD = 1000000000 + 7; int X_store[MAX_N]; int Y_store[MAX_N]; int N_store; // int calc_max_profit() { // int max_profit = 0; // int num_horses = 1; // for (int i=0; i<N_store; i++) { // num_horses *= X_store[i]; // max_profit = max(max_profit, num_horses * Y_store[i]); // } // return max_profit % MOD; // } long long calc_max_profit() { vector<long long> dp(N_store + 1, 0); long long horses = 1; for (int i = 0; i < N_store; i++) { horses = (horses * X_store[i]) % MOD; long long sell_profit = (horses * Y_store[i]) % MOD; dp[i + 1] = max((dp[i] + sell_profit) % MOD, (horses * dp[i]) % MOD); } return dp[N_store]; } int init(int N, int X[], int Y[]) { N_store = N; for (int i=0; i<N; i++) { X_store[i] = X[i]; Y_store[i] = Y[i]; } return calc_max_profit(); } int updateX(int pos, int val) { X_store[pos] = val; return calc_max_profit(); } int updateY(int pos, int val) { Y_store[pos] = val; return calc_max_profit(); }

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:42:24: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   42 |  return calc_max_profit();
      |         ~~~~~~~~~~~~~~~^~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:48:24: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   48 |  return calc_max_profit();
      |         ~~~~~~~~~~~~~~~^~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:54:24: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   54 |  return calc_max_profit();
      |         ~~~~~~~~~~~~~~~^~
#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...