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
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
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
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