0%

[題解]排隊

a111. 排隊

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bits/stdc++.h>
using namespace std;

int main(){
int n;cin>>n;
int t[1005][3],line=0,ans=0,cur=0;

cin>>t[0][0]>>t[0][1];
t[0][2] = t[0][0]+t[0][1];
for(int i=1;i<n;i++){
cin>>t[i][0]>>t[i][1];
if(t[i][0]<t[i-1][2])t[i][2] = t[i-1][2]+t[i][1];
else t[i][2] = t[i][0]+t[i][1];

if(t[i][0]>=t[cur][2]){
ans = max(ans,line);
while(t[i][0]>=t[cur][2]){
if(cur==i)break;
line--;
cur++;
}
}
if(t[i][0]<t[cur][2])line++;
}
ans = max(ans,line);
cout<<ans<<endl;
}