HUST Online Judge WebBoard
Problem 114514 >> 114514
zhangxuanzhen @ 2025-05-08 19:45:30
[ Quote ] [ Edit ] [ Delete ] 1#
114514
pengyufan @ 2025-05-14 18:21:05
[ Quote ] [ Edit ] [ Delete ] 2#
chenrui @ 2025-05-17 09:28:32
[ Quote ] [ Edit ] [ Delete ] 3#
#include<bits/stdc++.h>
using namespace std;
int n,x,y;
int mn=INT_MAX;
struct Tc{
int bz;
int dj;
}a[25];
void dfs(int in,int num,int sumb,int sumd){
if(sumb>=x&&sumd>=y){
mn=min(mn,num);
}else{
for(int i=in+1;i<=n;i++){
dfs(i,num+1,sumb+a[i].bz,sumd+a[i].dj);
}
}
}
int main(){
cin>>n>>x>>y;
int sumb=0;
int sumd=0;
for(int i=1;i<=n;i++){
cin>>a[i].bz>>a[i].dj;
sumb+=a[i].bz;
sumd+=a[i].dj;
}
if(sumb<x||sumd<y){
cout<<"-1";
return 0;
}for(int i=1;i<=n;i++){
dfs(i,1,a[i].bz,a[i].dj);
}
cout<<mn;
retur
}