제출 #832530

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
8325302023-08-21 11:12:23aymanrs말 (IOI15_horses)C++14
100 / 100
874 ms53200 KiB
#include<bits/stdc++.h>
#define L(i) (i<<1)
#define R(i) (i<<1|1)
const int MOD = 1e9+7;
using namespace std;
long long binp(long long a, int n){
int r = 1;
while(n){
if(n&1) r = a*r%MOD;
a = a*a%MOD;
n>>=1;
}
return r;
}
set<int> s;
vector<int> x, y;
const int nx = 5e5+10;
int st[4*nx], ind;
long long BIT[nx+1];
int que(int i){
int ans = y[i-1];
while(i){
ans = (BIT[i]*ans)%MOD;
i -= i&-i;
}
return ans;
}
void up(int i, int n, int v){
while(i <= n){
BIT[i] = BIT[i]*v%MOD;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

컴파일 시 표준 에러 (stderr) 메시지

horses.cpp: In function 'long long int binp(long long int, int)':
horses.cpp:9:18: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
    9 |   if(n&1) r = a*r%MOD;
      |               ~~~^~~~
horses.cpp: In function 'int que(int)':
horses.cpp:23:21: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   23 |   ans = (BIT[i]*ans)%MOD;
      |         ~~~~~~~~~~~~^~~~
horses.cpp: In function 'void cons(int, int, int)':
horses.cpp:39:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   39 |  int mid = l+r>>1;
      |            ~^~
horses.cpp: In function 'void upd(int, int, int)':
horses.cpp:53:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   53 |  int mid = l+r>>1;
      |            ~^~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:79:18: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   79 |  up(pos+1, x.size(), val*binp(x[pos], MOD-2)%MOD);
      |            ~~~~~~^~
horses.cpp:79:45: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   79 |  up(pos+1, x.size(), val*binp(x[pos], MOD-2)%MOD);
      |                      ~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp:86:20: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   86 |  upd(1, 0, x.size()-1);
      |            ~~~~~~~~^~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:92:20: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   92 |  upd(1, 0, x.size()-1);
      |            ~~~~~~~~^~
#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...