比赛 9.27练习赛 评测结果 AAAAAAAAAA
题目名称 Snow Boots 最终得分 100
用户昵称 袁书杰 运行时间 0.128 s
代码语言 C++ 内存使用 3.86 MiB
提交时间 2024-09-27 21:38:04
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,b,f[255],s[255],d[255],flag[255][255],ans=5e18;
void dfs(int cost,int now){
	if(cost>=n){
		ans=min(ans,now);
		return;
	}
	bool last=flag[cost][now];
	if(!last){
		flag[cost][now]=true;
		for(int i=now+1;i<=b;i++){
			if(!last){
				if(f[cost]<=s[i]){
					dfs(cost,i);
				}
			}
			else{
				return;
			}
		}
		for(int i=cost+1;i<=min(n,cost+d[now]);i++){
			if(!last){
				if(f[i]<=s[now]){
					dfs(i,now);
				}
			}
			else{
				return;
			}
		}
	}
	else{
		return;
	}
}
signed main(){
	freopen("snowboots_silver_18feb.in","r",stdin);
	freopen("snowboots_silver_18feb.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	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];
	}
	dfs(1,1);
	cout<<ans-1;
	return 0;
}