제출 #1136959

#제출 시각아이디문제언어결과실행 시간메모리
1136959owoovoRoller Coaster Railroad (IOI16_railroad)C++20
0 / 100
191 ms27420 KiB
#include "railroad.h" #include<bits/stdc++.h> #define ll long long #define F first #define S second using namespace std; const ll maxn=1e18; pair<ll,ll> tri[800010]; pair<ll,ll> chose(pair<ll,ll> a,pair<ll,ll> b){ return min(a,b); } void modify(int l,int r,int id,ll tar,ll x){ if(l==r){ tri[id]={x,tar}; return; } int m=(l+r)>>1; if(tar<=m)modify(l,m,id*2+1,tar,x); else modify(m+1,r,id*2+2,tar,x); tri[id]=chose(tri[id*2+1],tri[id*2+2]); return; } pair<ll,ll> query(int l,int r,int id,int L,int R){ if(l==L&&r==R)return tri[id]; int m=(l+r)>>1; if(L>m)return query(m+1,r,id*2+2,L,R); else if(R<=m)return query(l,m,id*2+1,L,R); else return chose(query(l,m,id*2+1,L,m),query(m+1,r,id*2+2,m+1,R)); } long long plan_roller_coaster(vector<int> s, vector<int> t) { int n = (int) s.size(); ll ans=0; vector<pair<ll,ll>> vc; set<pair<ll,ll>> st; for(int i=0;i<n;i++){ vc.push_back({s[i],t[i]}); } sort(vc.begin(),vc.end()); vc.push_back({0,0}); for(int i=0;i<n;i++){ modify(0,n-1,0,i,vc[i].S); if(i==0||vc[i].F!=vc[i-1].F)st.insert(make_pair(vc[i].F,i)); } ll cnt=0,now=0; while(1){ auto x=st.lower_bound({now,0}); if(x==st.end())break; auto u=query(0,n-1,0,(*x).S,n-1); now=u.F; if(u.F==maxn)break; modify(0,n-1,0,u.S,maxn); cnt++; } return cnt==n?0:1; }

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

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...