Submission #285890

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
2858902020-08-29 17:23:54Atill83Horses (IOI15_horses)C++14
77 / 100
1567 ms73080 KiB
#include "horses.h"
#include <bits/stdc++.h>
#define ff first
#define ss second
using namespace std;
const int MAXN = (int) 5e5 + 5;
const int mod = (int) 1e9+7;
typedef long long ll;
typedef pair<ll, ll> pll;
ll x[MAXN], y[MAXN], pre[MAXN], n;
set<pll> st;
ll bp(ll a, ll b){
ll res = 1;
while(b){
if(b % 2) res = (res * a) % mod;
a = (a * a) % mod;
b = b / 2;
}
return res;
}
ll t[4*MAXN];
void build(int v, int l, int r){
if(l == r){ t[v] = y[l];}
else{
int m = (l + r) / 2;
build(2*v, l, m);
build(2*v + 1, m + 1, r);
t[v] = max(t[2*v], t[2*v + 1]);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

horses.cpp: In function 'll gt()':
horses.cpp:3:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    3 | #define ff first
      |            ^
horses.cpp:89:16: note: in expansion of macro 'ff'
   89 |   int l = (*u).ff;
      |                ^~
horses.cpp:90:32: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   90 |   int r = (next(u) == st.end() ? n : (*next(u)).ff - 1);
      |           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
horses.cpp:90:32: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
horses.cpp:91:30: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   91 |   mx = max(mx, top*que(1, 0, n, l, r));
      |                              ^
horses.cpp:3:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    3 | #define ff first
      |            ^
horses.cpp:95:18: note: in expansion of macro 'ff'
   95 |  return get((*v).ff) * mx % mod;
      |                  ^~
horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:114:14: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  114 |   updi(i, x[i]);
      |           ~~~^
horses.cpp:121:14: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  121 |  build(1, 0, n);
      |              ^
horses.cpp:122:11: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  122 |  return gt();
      |         ~~^~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:129:36: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  129 |  updi(pos, bp(x[pos], mod - 2)*val % mod);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:3:12: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    3 | #define ff first
      |            ^
horses.cpp:136:16: note: in expansion of macro 'ff'
  136 |   int l = (*u).ff;
      |                ^~
horses.cpp:139:8: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  139 |    r = n;
      |        ^
horses.cpp:141:22: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
  141 |    r = (*next(u)).ff - 1;
      |        ~~~~~~~~~~~~~~^~~
horses.cpp:176:11: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  176 |  return gt();
      |         ~~^~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:182:12: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  182 |  upd(1, 0, n, pos);
      |            ^
horses.cpp:183:11: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
  183 |  return gt();
      |         ~~^~
#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...