显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,b,s[1010],d[1010],f[1010],dp[1010],ans=1;
int main(){
freopen("snowboots_silver_18feb.in","r",stdin);
freopen("snowboots_silver_18feb.out","w",stdout);
cin>>n>>b;
for(int i=1;i<=n;i++)
{
cin>>f[i];
}
for(int i=1;i<=b;i++)
{
cin>>s[i]>>d[i];
}
memset(dp,0x3f,sizeof(dp));
dp[1]=1;
for(int i=1;i<=n;i++)
{
for(int j=dp[i];j<=b;j++)
{
int as=s[j],ad=d[j];
for(int k=i+1;k<=min(ad+i,n);k++)
{
if(f[k]<=as&&f[i]<=as)
dp[k]=min(j,dp[k]);
}
}
}
cout<<dp[n]-1<<endl;
return 0;
}