Submission #620935

#TimeUsernameProblemLanguageResultExecution timeMemory
620935A_DHorses (IOI15_horses)C++14
0 / 100
24 ms15832 KiB
#include "horses.h" #include <bits/stdc++.h> using namespace std; const int N=2e5+100; long long x[N]; long long y[N]; int suf[N]; const long long MOD=1e9+7; int n; long long me=1; long long po(long long b,long long p) { if(p==0)return 1; if(p==1)return b; if(p%2){ return (b*po(b,p-1))%MOD; } long long r=po(b,p/2); return (r*r)%MOD; } long long modinv(int v) { return po(v,MOD-2); } int getans() { long long ret=0,sum=1,sum2=1,val=0; for(int i=n-31;i<n;i++){ sum*=x[i]; sum%=MOD; sum2*=x[i]; if(sum2*y[i]>val){ ret=(sum*y[i])%MOD; sum2=1; val=y[i]; } } ret*=me; ret%=MOD; return (int)ret; } int init(int N, int X[], int Y[]){ n=N; for(int i=0;i<n;i++){ x[i]=X[i]; y[i]=Y[i]; } for(int i=0;i<n-31;i++){ me*=x[i]; me%=MOD; } return getans(); } int updateX(int pos, int val) { if(pos<n-31){ me*=modinv(x[pos]); me*=MOD; x[pos]=val; me*=x[pos]; me*=MOD; } else{ x[pos]=val; } return getans(); } int updateY(int pos, int val) { y[pos]=val; return getans(); }

Compilation message (stderr)

horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:54:14: warning: declaration of 'N' shadows a global declaration [-Wshadow]
   54 | int init(int N, int X[], int Y[]){
      |          ~~~~^
horses.cpp:7:11: note: shadowed declaration is here
    7 | const int N=2e5+100;
      |           ^
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:71:25: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   71 |         me*=modinv(x[pos]);
      |                    ~~~~~^
#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...