Submission #58486

#TimeUsernameProblemLanguageResultExecution timeMemory
58486E869120Horses (IOI15_horses)C++14
17 / 100
24 ms12684 KiB
#include "horses.h" #include <iostream> using namespace std; long long N, X[100009], Y[100009], Allval = 0, mod = 1000000007; long long modpow(int a, int b, int m) { long long p = 1, q = a; for (int i = 0; i < 31; i++) { if ((b&(1 << i)) != 0) { p *= q; p %= m; } q *= q; q %= m; } return p; } long long Div(int a, int b, int m) { return (1LL * a*modpow(b, m - 2, m)) % m; } int solve() { pair<int, int>maxid = make_pair(0, 1); long long P = 1; for (int i = N - 1; i >= 0; i--) { // Y[i] / P と比べる if (maxid.first*P < maxid.second * Y[i]) maxid = make_pair(Y[i], P); P *= X[i]; if (P >= (1LL << 30)) break; } long long J = Div(Allval, maxid.second, mod); J *= maxid.first; J %= mod; return J; } int init(int NN, int XX[], int YY[]) { N = NN; Allval = 1; for (int i = 0; i < N; i++) { X[i] = XX[i]; Allval *= X[i]; } for (int i = 0; i < N; i++) Y[i] = YY[i]; return solve(); } int updateX(int pos, int val) { Allval = Div(Allval, X[pos], mod); X[pos] = val; Allval *= X[pos]; Allval %= mod; return solve(); } int updateY(int pos, int val) { Y[pos] = val; return solve(); }

Compilation message (stderr)

horses.cpp: In function 'int solve()':
horses.cpp:24:17: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  for (int i = N - 1; i >= 0; i--) {
               ~~^~~
horses.cpp:29:45: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  long long J = Div(Allval, maxid.second, mod);
                                             ^
horses.cpp:29:45: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
horses.cpp:31:9: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return J;
         ^
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:42:34: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  Allval = Div(Allval, X[pos], mod);
                                  ^
horses.cpp:42:28: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  Allval = Div(Allval, X[pos], mod);
                       ~~~~~^
horses.cpp:42:34: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  Allval = Div(Allval, X[pos], mod);
                                  ^
#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...