CodeForces 366A - Dima and Guards

Nothing has changed since the last round. Dima and Inna still love eachother and want to be together. They've made a deal with Seryozha and now theyneed to make a deal with the dorm guards...

There are four guardposts in Dima's dorm. Each post contains two guards(in Russia they are usually elderly women). You can bribe a guard by achocolate bar or a box of juice. For each guard you know the minimum price ofthe chocolate bar she can accept as a gift and the minimum price of the box ofjuice she can accept as a gift. If a chocolate bar for some guard costs lessthan the minimum chocolate bar price for this guard is, or if a box of juicefor some guard costs less than the minimum box of juice price for this guardis, then the guard doesn't accept such a gift.

In order to pass through a guardpost, one needs to bribe both guards.

The shop has an unlimited amount of juice and chocolate of any pricestarting with 1. Dimawants to choose some guardpost, buy one gift for each guard from the guardpostand spend exactly n rubles on it.

Help him choose a post through which he can safely sneak Inna orotherwise say that this is impossible. Mind you, Inna would be very sorry tohear that!

Input

The first line of the input contains integer n (1 ≤ n ≤ 105) — the money Dima wants tospend. Then follow four lines describing the guardposts. Each line containsfour integers a, b, c, d (1 ≤ a, b, c, d ≤ 105) — the minimum price of the chocolate and the minimumprice of the juice for the first guard and the minimum price of the chocolateand the minimum price of the juice for the second guard, correspondingly.

Output

In a single line of the output print three space-separated integers: thenumber of the guardpost, the cost of the first present and the cost of thesecond present. If there is no guardpost Dima can sneak Inna through at suchconditions, print -1 in a single line.

The guardposts are numbered from 1 to 4 according to the order given in the input.

If there are multiple solutions, you can print any of them.

Sample test(s)

input

10
5 6 5 6
6 6 7 7
5 8 6 6
9 9 9 9

output

1 5 5

input

10
6 6 6 6
7 7 7 7
4 4 4 4
8 8 8 8

output

3 4 6

input

5
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3

output

-1

Note

Explanation of the first example.

The only way to spend 10 rubles to buy the gifts that won't be less thanthe minimum prices is to buy two 5 ruble chocolates to both guards from thefirst guardpost.

Explanation of the second example.

Dima needs 12 rubles for the first guardpost, 14 for the second one, 16for the fourth one. So the only guardpost we can sneak through is the thirdone. So, Dima can buy 4 ruble chocolate for the first guard and 6 ruble juiceof the second guard.

 

思路:

一直没理解题目的意思,其实只要分别判断两个守卫接受的最低价格,然后加起来不超过n就行了


代码:
#define _CRT_SECURE_NO_WARNINGS

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;

const int N = 100005;
int max(int a, int b)
{
	if (a > b)
		return a;
	else
		return b;
}

int min(int a, int b)
{
	if (a < b)
		return a;
	else
		return b;
}

int a[N], b[N], c[N], d[N];

int main()
{
	int n;
	scanf("%d", &n);

	int mina = N, minb = N;
	int num = -1, x, y, minn = n;
	int i;
	for (i = 0; i<4; i++)
	{
		scanf("%d%d%d%d", &a[i], &b[i], &c[i], &d[i]);
		int mina = min(a[i], b[i]);
		int minb = min(c[i], d[i]);
		if (mina + minb <= n)
		{
			printf("%d %d %d\n", i + 1, mina, n - mina);
			return 0;
		}
	}

	printf("-1\n");

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值