Submission #3003622
Source Code Expand
#include<bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define fi first
#define sc second
#define lol(i,n) for(int i=0;i<n;i++)
#define mod 1000000007
typedef long long ll;
using namespace std;
#define N 100010
ll n,h;
typedef pair<ll,pair<bool,ll> >P;
vector<P> Q;
map<ll,ll> m;
int main(){
cin>>n>>h;
ll sum=0;
lol(i,n-1){
ll a,b;
scanf("%lld%lld",&a,&b);
Q.pb(mp(sum+1,mp(0,b)));
Q.pb(mp(sum+h-b,mp(1,b)));
sum+=a;
}
sort(Q.begin(),Q.end());
ll pnt=h,ans=0,to=0,p=0;m[0]=1;
while(pnt<=sum){
for(;p<Q.size();p++){
ll t=Q[p].fi,k=Q[p].sc.sc;
if(t>pnt)break;
if(Q[p].sc.fi){
m[k]--;if(!m[k])m.erase(k);
to=max(to,t+k);
}
else m[k]++;
}
auto it=m.end();it--;ll k=it->fi;
if(k>=to-pnt){
ll mov=(min(Q[p].first,sum+1)-pnt+k-1)/k;
ans+=mov,pnt+=mov*k;
}
else pnt=to,ans++;
}
cout<<ans<<endl;
return 0;
}
Submission Info
Submission Time
2018-08-13 22:28:41+0900
Task
E - ダンジョン
User
ynymxiaolongbao
Language
C++14 (GCC 5.4.1)
Score
20
Code Size
949 Byte
Status
AC
Exec Time
40 ms
Memory
8560 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:21:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld%lld",&a,&b);
^
Judge Result
Set Name
set01
set02
set03
set04
set05
set06
set07
set08
set09
set10
Score / Max Score
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
2 / 2
Status
Set Name
Test Cases
set01
data1
set02
data2
set03
data3
set04
data4
set05
data5
set06
data6
set07
data7
set08
data8
set09
data9
set10
data10
Case Name
Status
Exec Time
Memory
data1
AC
1 ms
384 KB
data10
AC
40 ms
7280 KB
data2
AC
1 ms
384 KB
data3
AC
1 ms
384 KB
data4
AC
36 ms
7792 KB
data5
AC
37 ms
7408 KB
data6
AC
40 ms
7536 KB
data7
AC
39 ms
8048 KB
data8
AC
39 ms
8560 KB
data9
AC
40 ms
7152 KB