#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
int li[n+1],lj[n+1],ri[n+1];
for(int i=1;i<=n;i++)
{
int l,r;
cin>>l>>r;
li[i]=max((int)0,i-l-1);
ri[i]=min(n+1,i+r+1);
//ตั้งแต่ i+1 -> min(n,i+r)=min(อันเดิม,i)
int j=li[i];
while(j!=0&&ri[j]>i)
{
j=li[j];
}
li[i]=j;
}
int ans[n+1];
memset(ans,0,sizeof ans);
for(int i=1;i<=n;i++)
{
ans[i]=ans[i-1];
int d=li[i];
//cout<<li[i]<<" "<<ri[i]<<" ";
ans[i]=max(ans[i],ans[d]+1);
//cout<<ans[i]<<endl;
}
cout<<ans[n];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |