Submission #291464

#TimeUsernameProblemLanguageResultExecution timeMemory
291464MarcoMeijerHorses (IOI15_horses)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #include "horses.h" #include "grader.cpp" //macros typedef long long ll; typedef pair<int, int> ii; typedef pair<ll, ll> lll; typedef tuple<int, int, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef vector<iii> viii; typedef vector<ll> vll; typedef vector<lll> vlll; #define REP(a,b,c) for(int a=int(b); a<int(c); a++) #define RE(a,c) REP(a,0,c) #define RE1(a,c) REP(a,1,c+1) #define REI(a,b,c) REP(a,b,c+1) #define REV(a,b,c) for(int a=int(c-1); a>=int(b); a--) #define INF 1e9 #define pb push_back #define fi first #define se second #define sz size() const int MX = 5e5+10; const int MOD = 1e9+7; ll n, x[MX], y[MX]; ll segX[MX*2]; ll segY[MX*2]; set<int> corX; void buildSeg() { RE(i,n) segX[i+n] = x[i]; RE(i,n) segY[i+n] = y[i]; REV(i,1,n) segX[i] = (segX[i*2]*segX[i*2+1])%MOD; REV(i,1,n) segY[i] = max(segY[i*2], segY[i*2+1]); } void setSegX(int i, ll v) { for(segX[i+=n]=v; i>1; i/=2) segX[i/2] = (segX[i]*segX[i^1])%MOD; } void setSegY(int i, ll v) { for(segY[i+=n]=v; i>1; i/=2) segY[i/2] = max(segY[i], segY[i^1]); } ll getSegX(int l, int r) { ll res = 1; for(l+=n, r+=n; l<r; l/=2, r/=2) { if(l&1) res = (res*segX[l++])%MOD; if(r&1) res = (res*segX[--r])%MOD; } return res; } ll getSegY(int l, int r) { ll res = 0; for(l+=n, r+=n; l<r; l/=2, r/=2) { if(l&1) res = max(res, segY[l++]); if(r&1) res = max(res, segY[--r]); } return res; } int getAns() { ll bst = 1; int i=n; auto it = corX.end(); while(it != corX.begin()) { --it; bst = x[*it]*max(bst, getSegY(*it,i)); i = *it; if(bst >= INF) { break; } } bst %= MOD; bst = (bst*getSegX(0,i))%MOD; return bst; } int init(int N, int X[], int Y[]) { n=N; RE(i,n) x[i]=X[i]; RE(i,n) y[i]=Y[i]; RE(i,n) if(x[i] != 1) corX.insert(i); buildSeg(); return getAns(); } int updateX(int pos, int val) { corX.erase(pos); x[pos] = val; if(val != 1) corX.insert(pos); setSegX(pos, val); return getAns(); } int updateY(int pos, int val) { y[pos] = val; setSegY(pos, val); return getAns(); }

Compilation message (stderr)

horses.cpp:6:10: fatal error: grader.cpp: No such file or directory
    6 | #include "grader.cpp"
      |          ^~~~~~~~~~~~
compilation terminated.