| 比赛 | 
    9.27练习赛 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    Snow Boots | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    郑霁桓 | 
    运行时间 | 
    0.130 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    4.04 MiB  | 
    | 提交时间 | 
    2024-09-27 21:13:21 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[255],h[255],l[255];
long long ss[255][255],s=100000000;
void dfs(long long x,long long p){
    if(x==n){
        s=min(s,p-1);
        return;
    }
    if(ss[x][p]){
        return;
    }
    ss[x][p]=1;
    for(int i=1;i<=l[p];i++){
        if(x+i<=n&&a[x+i]<=h[p]){
            dfs(x+i,p);
        }
    }
    for(int i=p+1;i<=m;i++){
        if(h[i]>=a[x]){
            dfs(x,i);
        }
    }
    return;
}
int main(){
    freopen("snowboots_silver_18feb.in","r",stdin);
    freopen("snowboots_silver_18feb.out","w",stdout);
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    for(int i=1;i<=m;i++){
        scanf("%lld%lld",&h[i],&l[i]);
    }
    dfs(1,0);
    printf("%lld",s);
	return 0;
}