제출 #874124

#제출 시각아이디문제언어결과실행 시간메모리
874124HuyQuang_re_Zero말 (IOI15_horses)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define ll long long #define db long double #define II pair <ll,ll> #define III pair <ll,II> #define IV pair <vector <int>,vector <int> > #define TII pair <treap*,treap*> #define fst first #define snd second #define BIT(x,i) ((x>>i)&1) #define pi acos(-1) #define to_radian(x) (x*pi/180.0) #define to_degree(x) (x*180.0/pi) #define Log(x) (31-__builtin_clz((int)x)) #define LogLL(x) (63-__builtin_clzll((ll)x)) #include "horse.h" using namespace std; const ll mod=round(1e9)+7; set <int> s; struct pt { ll x,y; }; pt operator + (pt a,pt b) { return { a.x*b.x%mod,max(a.y,b.y) }; } int x[100005],y[100005],n,i,u,q,type,pos,val; struct Interval_Tree { pt st[4*500005]; void update(int id,int l,int r,int u) { if(l==r) { st[id]={ x[i],y[i] }; return ; } int mid=(l+r)>>1; if(u<=mid) update(id*2,l,mid,u); else update(id*2+1,mid+1,r,u); st[id]=st[id*2]+st[id*2+1]; } pt get(int id,int l,int r,int u,int v) { if(u>r || v<l) return { 1,0 }; if(u<=l && r<=v) return st[id]; int mid=(l+r)>>1; return get(id*2,l,mid,u,v)+get(id*2+1,mid+1,r,u,v); } } IT; ll Cal() { set <int>::iterator it=s.end(); ll ma=0,res=0,last=n+1; while(it!=s.begin()) { it--; int u=*it; ll k=IT.get(1,1,n,u,last-1).y; if(ma<k) { ma=k; res=IT.get(1,1,n,1,u).x*ma%mod; } ma=ma*x[u]; if(ma>round(1e9)) break; last=u; } return res; } int init(int n,int _x[],int _y[]) { s.insert(0); for(i=n;i>=1;i--) { x[i]=_x[i-1],y[i]=_y[i-1]; if(x[i]>=2) s.insert(i); IT.update(1,1,n,i); } x[0]=1; return Cal(); } int updateX(int u,int k) { u++; s.erase(u); x[u]=k; if(x[u]>=2) s.insert(u); IT.update(1,1,n,u); return Cal(); } int updateY(int u,int k) { u++; y[u]=k; IT.update(1,1,n,u); return Cal(); } /* int main() { freopen("horse.inp","r",stdin); freopen("horse.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(i=0;i<n;i++) cin>>x[i]; for(i=0;i<n;i++) cin>>y[i]; cout<<init(n,x,y)<<'\n'; cin>>q; while(q--) { cin>>type>>pos>>val; if(type==1) cout<<updateX(pos,val)<<'\n'; else cout<<updateY(pos,val)<<'\n'; } } */

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

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