在每个门处有两个守卫,可以通过巧克力棒或者果汁来收买他们,但是他们对这些东西都有一个最低的要求,不能低于这
条线,要不然是收买不动的,这个人想通过n元收买他们,输入有四行,每一行的a,b,c,d表示这两个门卫分别对两个物品可以接受的最小价值,如果可以收买的话,按照输入的顺序输出第一组方案,输出的东西包括输入的行数的下标,下标从一开始
,然后是第一个人可以接受的最小值,最后是剩下多少给第二个人买东西,不存在方案的话输出-1,输出第一组。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[10],b[10],c[10],d[10];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i,j;
int ans=-1,anx,any;
for(i=0;i<4;i++)
{
scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
int xx=min(a[i],b[i]);
int yy=min(c[i],d[i]);
if(xx+yy<=n)
{
if(ans==-1)
{
anx=xx;
any=n-xx;
ans=i+1;
}
}
}
if(ans!=-1)
{
printf("%d %d %d\n",ans,anx,any);
}
else
printf("-1\n");
}
return 0;
}