Submission #139552

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1395522019-08-01 01:55:35PlurmHorses (IOI15_horses)C++11
17 / 100
539 ms115672 KiB
#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
multimap<long double, int> mm;
const int MOD = 1e9+7;
long double FT1[500005];
int FT2[500005];
int modpow(int base, int expo){
if(expo == 0) return 1;
int res = modpow(base, expo/2);
if(expo % 2 == 0){
return (1ll * res * res) % MOD;
}else{
return 1ll * ((1ll * res * res) % MOD) * base % MOD;
}
}
int invmod(int x){
return modpow(x, MOD-2);
}
void sub(int idx, int amt){
idx++;
while(idx < 500005){
FT1[idx] -= log2l(amt);
FT2[idx] = (1ll * FT2[idx] * invmod(amt)) % MOD;
idx += idx & -idx;
}
}
void add(int idx, int amt){
idx++;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

horses.cpp: In function 'int modpow(int, int)':
horses.cpp:13:34: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         return (1ll * res * res) % MOD;
                ~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:15:55: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         return 1ll * ((1ll * res * res) % MOD) * base % MOD;
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void sub(int, int)':
horses.cpp:25:51: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         FT2[idx] = (1ll * FT2[idx] * invmod(amt)) % MOD;
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void add(int, int)':
horses.cpp:33:43: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         FT2[idx] = (1ll * FT2[idx] * amt) % MOD;
                    ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int sum2(int)':
horses.cpp:50:38: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
         ret = (1ll * ret * FT2[idx]) % 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...