Submission #307299

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
3072992020-09-27 15:07:27vipghn2003Horses (IOI15_horses)C++14
100 / 100
768 ms53496 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N ((int)501*1000)
#define MOD ((int)1e9+7)
int tavan(int x,int y){int res=1;while(y){res=1LL*res*((y%2)?x:1)%MOD;x=1LL*x*x%MOD;y/=2;}return res;}
int n,x[N],y[N];
set <int> s;
int segMul[4*N],segMax[4*N];
void updateMul(int q,int val,int xl=0,int xr=n,int id=1)
{
if(xl==xr-1)
{
segMul[id]=val;
return ;
}
int mid=(xl+xr)/2;
if(q<mid)updateMul(q,val,xl,mid,id*2);
else updateMul(q,val,mid,xr,id*2+1);
segMul[id]=1LL*segMul[id*2]*segMul[id*2+1]%MOD;
return ;
}
void updateMax(int q,int val,int xl=0,int xr=n,int id=1)
{
if(xl==xr-1)
{
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

horses.cpp: In function 'int tavan(int, int)':
horses.cpp:7:66: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    7 | int tavan(int x,int y){int res=1;while(y){res=1LL*res*((y%2)?x:1)%MOD;x=1LL*x*x%MOD;y/=2;}return res;}
      |                                                                  ^
horses.cpp:7:80: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    7 | int tavan(int x,int y){int res=1;while(y){res=1LL*res*((y%2)?x:1)%MOD;x=1LL*x*x%MOD;y/=2;}return res;}
      |                                                                                ^
horses.cpp: In function 'void updateMul(int, int, int, int, int)':
horses.cpp:23:44: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   23 |  segMul[id]=1LL*segMul[id*2]*segMul[id*2+1]%MOD;
      |                                            ^
horses.cpp: In function 'int queryMul(int, int, int, int)':
horses.cpp:45:48: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   45 |  if(mid<q)res=1LL*res*queryMul(q,mid,xr,id*2+1)%MOD;
      |                                                ^
horses.cpp: In function 'int solve()':
horses.cpp:66:6: warning: conversion from 'long long int' to 'double' may change value [-Wconversion]
   66 |   if(now>=1e9+10 || it==s.begin())break;
      |      ^~~
horses.cpp:79:9: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   79 |  return ans;
      |         ^~~
#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...