Submission #1000210

#TimeUsernameProblemLanguageResultExecution timeMemory
1000210jer033Horses (IOI15_horses)C++17
34 / 100
1588 ms12412 KiB
#include "horses.h" #include <bits/stdc++.h> using ll = long long; using namespace std; const ll MOD = 1'000'000'007; const ll INF = 1'000'000'006; ll regmul(ll a, ll b) { return (a*b)%MOD; } ll boundmul(ll a, ll b) { return min(INF, a*b); } vector<int> x; vector<int> y; int n; ll solve(int N) { ll safe = x[0]; ll bes = y[0]; ll currmul = 1; for (int i=1; i<N; i++) { if (boundmul(boundmul(currmul, x[i]), y[i])>=bes) { safe = regmul(safe, currmul); safe = regmul(safe, x[i]); currmul = 1; bes = y[i]; } else { currmul = boundmul(currmul, x[i]); } } return regmul(safe, bes); } 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]); } n=N; return solve(n); } int updateX(int pos, int val) { x[pos] = val; return solve(n); } int updateY(int pos, int val) { y[pos] = val; return solve(n); }

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:51:14: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   51 |  return solve(n);
      |         ~~~~~^~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:56:14: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   56 |  return solve(n);
      |         ~~~~~^~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:61:14: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   61 |  return solve(n);
      |         ~~~~~^~~
#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...