Submission #154143

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1541432019-09-18 14:32:41popovicirobertHorses (IOI15_horses)C++14
100 / 100
1153 ms114896 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
const int MOD = (int) 1e9 + 7;
const int MAXN = (int) 5e5;
inline int lgput(int a, int b) {
int ans = 1;
while(b > 0) {
if(b & 1) ans = (1LL * ans * a) % MOD;
b >>= 1;
a = (1LL * a * a) % MOD;
}
return ans;
}
static int X[MAXN + 1], Y[MAXN + 1];
static int n;
struct Node {
int rem, lazy_rem;
long double mx, lazy;
}aint[4 * MAXN];
inline void refresh(int nod) {
if(aint[2 * nod + 1].mx + aint[2 * nod + 1].lazy > aint[2 * nod + 2].mx + aint[2 * nod + 2].lazy) {
aint[nod].mx = aint[2 * nod + 1].mx + aint[2 * nod + 1].lazy;
aint[nod].rem = (1LL * aint[2 * nod + 1].rem * aint[2 * nod + 1].lazy_rem) % MOD;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

horses.cpp: In function 'int lgput(int, int)':
horses.cpp:12:41: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         if(b & 1) ans = (1LL * ans * a) % MOD;
                         ~~~~~~~~~~~~~~~~^~~~~
horses.cpp:14:27: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         a = (1LL * a * a) % MOD;
             ~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void refresh(int)':
horses.cpp:30:84: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         aint[nod].rem = (1LL * aint[2 * nod + 1].rem * aint[2 * nod + 1].lazy_rem) % MOD;
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:34:84: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         aint[nod].rem = (1LL * aint[2 * nod + 2].rem * aint[2 * nod + 2].lazy_rem) % MOD;
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void push(int)':
horses.cpp:43:90: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
     aint[2 * nod + 1].lazy_rem = (1LL * aint[2 * nod + 1].lazy_rem * aint[nod].lazy_rem) % MOD;
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:44:90: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
     aint[2 * nod + 2].lazy_rem = (1LL * aint[2 * nod + 2].lazy_rem * aint[nod].lazy_rem) % MOD;
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void update(int, int, int, int, int, long double, int)':
horses.cpp:51:63: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         aint[nod].lazy_rem = (1LL * aint[nod].lazy_rem * rem) % MOD;
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:73:48: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return (1LL * aint[0].rem * aint[0].lazy_rem) % MOD;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:80:48: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return (1LL * aint[0].rem * aint[0].lazy_rem) % MOD;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:87:48: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  return (1LL * aint[0].rem * aint[0].lazy_rem) % 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...