Submission #718533

#TimeUsernameProblemLanguageResultExecution timeMemory
718533mseebacherHorses (IOI15_horses)C++17
17 / 100
1567 ms8140 KiB
#include "horses.h" #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string> #include <vector> #include <cmath> #include <cstring> #include <algorithm> #include <iomanip> #include <map> #include <set> #include <stack> #include <queue> #include <functional> #include <iostream> #include <fstream> #include <string> using namespace std; vector<int> x; vector<int> y; int n; double logp(int i){ return log2(i); } const int MOD = 1e9+7; int calc(){ double horses = logp(1); double p = 0; for(int i = 0;i<n;i++){ horses += logp(x[i]); p = max(p,horses+logp(y[i])); } int ans = 1; for(int i = 0;i<(int)p;i++){ ans*=2%MOD; } ans %= MOD; return (int)round((double)ans *pow(2,p-(int)p))%MOD; } int init(int N, int X[], int Y[]) { n = N; x.assign(N,0); y.assign(N,0); for(int i = 0;i<n;i++){ x[i] = X[i]; y[i] = Y[i]; } return calc(); } int updateX(int pos, int val) { x[pos] = val; return calc(); } int updateY(int pos, int val) { y[pos] = val; return calc(); }
#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...