Kill the monster

Kill the monster

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2616

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef struct Node {
    
    
	int x;
	int y;

}node;
node a[10];
bool vis[10];
//bool flag;
int n, m;
int minn = 20;
void solve(int t, int mm) {
    
    
	if (mm <= 0)
	{
    
    
		minn = min(minn, t);
		//flag = 1;
		return;
	}
	if (t == n) {
    
    
		return;
	}
	for (int i = 1; i <= n; i++) {
    
    
		if (!vis[i]) {
    
    
			vis[i] = 1;
			int temp = 0;
			if (mm <= a[i].y)
				temp = mm - a[i].x * 2;
			else
				temp = mm - a[i].x;
			solve(t + 1, temp);
			vis[i] = 0;
		}
	}
}
int main() {
    
    
	
	while (cin >> n >> m) {
    
    
		for (int i = 1; i <= n; i++) {
    
    
			cin >> a[i].x >> a[i].y;
		}
		
		memset(vis, 0, sizeof(vis));
		//flag = 0;
		minn = 20;
		solve(0,m);
		if (minn == 20)
			cout << -1 << endl;
		else
			cout << minn << endl;

	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_46028214/article/details/113120270
今日推荐