贿赂门卫
2016-06-03 23:27
183 查看
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit
Status
Description
Nothing has changed since the last round. Dima and Inna still love each other and want to be together. They've made a deal with Seryozha and now they need 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 a chocolate bar or a box of juice. For each guard you know the minimum price of the chocolate bar she can accept as
a gift and the minimum price of the box of juice she can accept as a gift. If a chocolate bar for some guard costs less than the minimum chocolate bar price for this guard is, or if a box of juice for some guard costs less than the minimum box of juice price
for this guard is, 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 price starting with 1. Dima wants to choose some guardpost, buy one gift for each guard from the guardpost and spend exactlyn rubles on it.
Help him choose a post through which he can safely sneak Inna or otherwise say that this is impossible. Mind you, Inna would be very sorry to hear that!
Input
The first line of the input contains integer n (1?≤?n?≤?105) — the money Dima wants to spend. Then follow four lines describing the guardposts. Each line contains four integers a,?b,?c,?d (1?≤?a,?b,?c,?d?≤?105) — the minimum price of the chocolate and the minimum
price of the juice for the first guard and the minimum price of the chocolate and the minimum price of the juice for the second guard, correspondingly.
Output
In a single line of the output print three space-separated integers: the number of the guardpost, the cost of the first present and the cost of the second present. If there is no guardpost Dima can sneak Inna through at such conditions, 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 Input
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
Hint
Explanation of the first example.
The only way to spend 10 rubles to buy the gifts that won't be less than the minimum prices is to buy two 5 ruble chocolates to both guards from the first guardpost.
Explanation of the second example.
Dima needs 12 rubles for the first guardpost, 14 for the second one, 16 for the fourth one. So the only guardpost we can sneak through is the third one. So, Dima can buy 4 ruble chocolate for the first guard and 6 ruble juice of the second guard.
对于CodeforcesA的题,如果读懂题意就不是非常难。。
题意:
在每个门处有两个守卫,可以通过巧克力棒或者果汁来收买他们,但是他们对这些东西都有一个最低的要求,不能低于这
条线,要不然是收买不动的,这个人想通过n元收买他们,输入有四行,每一行的a,b,c,d表示这两个门卫分别对两个物品可以接受的最小价值,如果可以收买的话,按照输入的顺序输出第一组方案,输出的东西包括输入的行数的下标,下标从一开始
,然后是第一个人可以接受的最小值,最后是剩下多少给第二个人买东西,不存在方案的话输出-1,输出第一组
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n,i,j;
int a[5][5];
int mina,minb;
int flag=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++)
{
mina=min(a[i][0],a[i][1]);
minb=min(a[i][2],a[i][3]);
if(mina+minb<=n)
{
flag=1;
printf("%d %d %d\n",i+1,mina,n-mina);
break;
}
}
if(flag==0)
{
printf("-1\n");
}
}
return 0;
}
Submit
Status
Description
Nothing has changed since the last round. Dima and Inna still love each other and want to be together. They've made a deal with Seryozha and now they need 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 a chocolate bar or a box of juice. For each guard you know the minimum price of the chocolate bar she can accept as
a gift and the minimum price of the box of juice she can accept as a gift. If a chocolate bar for some guard costs less than the minimum chocolate bar price for this guard is, or if a box of juice for some guard costs less than the minimum box of juice price
for this guard is, 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 price starting with 1. Dima wants to choose some guardpost, buy one gift for each guard from the guardpost and spend exactlyn rubles on it.
Help him choose a post through which he can safely sneak Inna or otherwise say that this is impossible. Mind you, Inna would be very sorry to hear that!
Input
The first line of the input contains integer n (1?≤?n?≤?105) — the money Dima wants to spend. Then follow four lines describing the guardposts. Each line contains four integers a,?b,?c,?d (1?≤?a,?b,?c,?d?≤?105) — the minimum price of the chocolate and the minimum
price of the juice for the first guard and the minimum price of the chocolate and the minimum price of the juice for the second guard, correspondingly.
Output
In a single line of the output print three space-separated integers: the number of the guardpost, the cost of the first present and the cost of the second present. If there is no guardpost Dima can sneak Inna through at such conditions, 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 Input
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
Hint
Explanation of the first example.
The only way to spend 10 rubles to buy the gifts that won't be less than the minimum prices is to buy two 5 ruble chocolates to both guards from the first guardpost.
Explanation of the second example.
Dima needs 12 rubles for the first guardpost, 14 for the second one, 16 for the fourth one. So the only guardpost we can sneak through is the third one. So, Dima can buy 4 ruble chocolate for the first guard and 6 ruble juice of the second guard.
对于CodeforcesA的题,如果读懂题意就不是非常难。。
题意:
在每个门处有两个守卫,可以通过巧克力棒或者果汁来收买他们,但是他们对这些东西都有一个最低的要求,不能低于这
条线,要不然是收买不动的,这个人想通过n元收买他们,输入有四行,每一行的a,b,c,d表示这两个门卫分别对两个物品可以接受的最小价值,如果可以收买的话,按照输入的顺序输出第一组方案,输出的东西包括输入的行数的下标,下标从一开始
,然后是第一个人可以接受的最小值,最后是剩下多少给第二个人买东西,不存在方案的话输出-1,输出第一组
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n,i,j;
int a[5][5];
int mina,minb;
int flag=0;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++)
{
mina=min(a[i][0],a[i][1]);
minb=min(a[i][2],a[i][3]);
if(mina+minb<=n)
{
flag=1;
printf("%d %d %d\n",i+1,mina,n-mina);
break;
}
}
if(flag==0)
{
printf("-1\n");
}
}
return 0;
}
相关文章推荐
- 安装mysq 在linux,以及配置权限, 让某个账户能远程访问并且访问所有数据库
- 欢迎使用CSDN-markdown编辑器
- java.util.ArrayList
- leetcode--008. String to Integer (atoi)
- Java集合---ConcurrentHashMap原理分析
- 可能是屎上最容易懂的java冒泡排序
- Ubuntu下Sublime Text 3无法输入中文的解决方案(2016-06-04)
- Android学习笔记-自定义view保存状态
- ubuntu14.0 搭建嵌入式qt开发环境
- 太原网络营销师揭秘O如何玩转网站SEO关键字description的选择?
- Crawlpojproblem
- Cluster_analysis
- 一个工作一年半的程序员的自述(三)
- 实习第十四天:surfaceView创建和销毁发生的地方
- BBScan:信息泄漏批量扫描脚本
- hadoop简介
- Hibernate-命名HQL查询
- OpenGL2.0及以上版本中glm,glut,glew,glfw,mesa等部件的关系
- Android 进程 线程 粗浅理解
- unity使用vuforia实现模型AR效果