Submission #572032

#TimeUsernameProblemLanguageResultExecution timeMemory
572032beaconmc말 (IOI15_horses)C++14
0 / 100
1535 ms12812 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") typedef long long ll; #define FOR(i,x,y) for(ll i=x; i<y; i++) #define FORNEG(i,x,y) for(ll i=x; i>y; i--) #define double long double #define SIZE 1048576 #define HSIZE 524288 #define MOD 1000000007 // #include "horses.h" using namespace std; vector<ll> x, y, xx, yy; ll n; ll tree[SIZE]; void update(ll a,ll b){ a += HSIZE; tree[a] = b; while (a>1){ a/=2; tree[a] = tree[a*2]*tree[a*2+1]%MOD; } } ll query(ll a, ll b){ a += HSIZE; b += HSIZE; ll maxi = 1; while (a<=b){ if (a%2==1){ maxi *= tree[a++]; maxi %= MOD; } if (b%2==0){ maxi *= tree[b--]; maxi %= MOD; } a/=2; b/=2; } return maxi; } int solve(){ ll maxsum = 1; ll maxpos = -1; ll cur = 1; FOR(i,0,n){ cur *= x[i]; if (y[i] * cur >= maxsum){ cur = 1; maxsum = y[i]; maxpos = i; } } return (query(0, maxpos) * maxsum) % 1000000007; } int init(int N, int X[], int Y[]) { n = N; FOR(i,0,N){ x.push_back(X[i]); y.push_back(Y[i]); } return solve(); } int updateX(int pos, int val) { update(pos, val); return solve(); } int updateY(int pos, int val) { y[pos] = val; return solve(); } // int main(){ // ll n = 10; // int x[10] = {10, 10, 10, 10, 10, 10, 1, 1, 1, 1}; // int y[10] = {1, 1, 1, 1, 9, 5, 4, 7, 3, 2}; // cout << init(n, x, y) << endl; // cout << updateX(5, 1) << endl; // cout << updateY(5, 123456789) << endl; // cout << updateX(5, 1) << endl; // cout << updateX(8, 987654321) << endl; // }

Compilation message (stderr)

horses.cpp: In function 'int solve()':
horses.cpp:67:37: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   67 |  return (query(0, maxpos) * maxsum) % 1000000007;
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
#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...