Codeforces 478C Table Decorations【贪心】
2016-10-13 15:01
381 查看
C. Table Decorations
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You have r red,
g green and b blue balloons. To decorate a single table for the banquet you need exactly three balloons. Three balloons attached to some table shouldn't have the same color. What maximum number
t of tables can be decorated if we know number of balloons of each color?
Your task is to write a program that for given values r,
g and b will find the maximum number
t of tables, that can be decorated in the required manner.
Input
The single line contains three integers r,
g and b (0 ≤ r, g, b ≤ 2·109) — the number of red, green and blue baloons respectively. The
numbers are separated by exactly one space.
Output
Print a single integer t — the maximum number of tables that can be decorated in the required manner.
Examples
Input
Output
Input
Output
Input
Output
Note
In the first sample you can decorate the tables with the following balloon sets: "rgg", "gbb", "brr", "rrg",
where "r", "g" and "b" represent the red, green and blue balls, respectively.
题目大意:
一共三种颜色的气球,每种气球的个数已知,对应有一排桌子,我们需要对每一个桌子分配三个气球,但是一个桌子上的气球的颜色不能相同,问最多能够分配多少个桌子。
思路:
1、显然利用到贪心思想,每一次选取最多的颜色气球两个,加上最少的颜色的气球一个,分配到一个桌子上,但是因为数据很大,直接模拟一定会超时,那么考虑枚举找规律。
2、
①那么显然,如果最少数量的两个颜色的气球的数量总和乘以2如果小于等于另外颜色的气球的个数,显然答案是最少数量的两个颜色的气球个数和。
②其他情况经过枚举发现,因为我们在模拟过程中三种颜色的气球时大时小,其实一直模拟下去的解就是三种颜色的气球的总和/3.
Ac代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll __int64int main()
{
ll aa,bb,cc;
while(~scanf("%I64d%I64d%I64d",&aa,&bb,&cc))
{
ll a[5];
a[0]=aa;
a[1]=bb;
a[2]=cc;
sort(a出,a+3);
if(a[0]*2+a[1]*2<=a[2])
printf("%I64d",a[0]+a[1]);
else printf("%I64d\n",(a[0]+a[1]+a[2])/3);
}
}
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You have r red,
g green and b blue balloons. To decorate a single table for the banquet you need exactly three balloons. Three balloons attached to some table shouldn't have the same color. What maximum number
t of tables can be decorated if we know number of balloons of each color?
Your task is to write a program that for given values r,
g and b will find the maximum number
t of tables, that can be decorated in the required manner.
Input
The single line contains three integers r,
g and b (0 ≤ r, g, b ≤ 2·109) — the number of red, green and blue baloons respectively. The
numbers are separated by exactly one space.
Output
Print a single integer t — the maximum number of tables that can be decorated in the required manner.
Examples
Input
5 4 3
Output
4
Input
1 1 1
Output
1
Input
2 3 3
Output
2
Note
In the first sample you can decorate the tables with the following balloon sets: "rgg", "gbb", "brr", "rrg",
where "r", "g" and "b" represent the red, green and blue balls, respectively.
题目大意:
一共三种颜色的气球,每种气球的个数已知,对应有一排桌子,我们需要对每一个桌子分配三个气球,但是一个桌子上的气球的颜色不能相同,问最多能够分配多少个桌子。
思路:
1、显然利用到贪心思想,每一次选取最多的颜色气球两个,加上最少的颜色的气球一个,分配到一个桌子上,但是因为数据很大,直接模拟一定会超时,那么考虑枚举找规律。
2、
①那么显然,如果最少数量的两个颜色的气球的数量总和乘以2如果小于等于另外颜色的气球的个数,显然答案是最少数量的两个颜色的气球个数和。
②其他情况经过枚举发现,因为我们在模拟过程中三种颜色的气球时大时小,其实一直模拟下去的解就是三种颜色的气球的总和/3.
Ac代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define ll __int64int main()
{
ll aa,bb,cc;
while(~scanf("%I64d%I64d%I64d",&aa,&bb,&cc))
{
ll a[5];
a[0]=aa;
a[1]=bb;
a[2]=cc;
sort(a出,a+3);
if(a[0]*2+a[1]*2<=a[2])
printf("%I64d",a[0]+a[1]);
else printf("%I64d\n",(a[0]+a[1]+a[2])/3);
}
}
相关文章推荐
- CodeForces Div124-1 hrbust 1474 哈理工oj 求字典序最大的子串【贪心】
- Codeforces 508E Arthur and Brackets【贪心】
- codeforces 233c Cycles【贪心】
- codeforces 416C C. Booking System(贪心)
- Codeforces 416D Population Size(贪心)
- Codeforces 581C Developing Skills 贪心
- codeforces - 508C - Anya and Ghosts(贪心)
- codeforces 825E Minimum Label 拓扑排序+逆向思维贪心
- CodeForces 12C Fruits (贪心)
- CodeForces 734C Anton and Making Potions 【二分】【贪心】
- CodeForces 371 E.Subway Innovation(贪心)
- CodeForces 723C-Polycarp at the Radio(模拟 贪心 vector乱搞)
- CodeForces 140C 贪心+优先队列
- Codeforces 437C The Child and Toy(贪心)
- CodeForces 339B (贪心模拟)
- codeforces 798 D. Mike and distribution 二维贪心
- Codeforces 442B Andrey and Problem(贪心)
- CodeForces - 845C Two TVs 贪心
- Codeforces 706d 字典树+贪心
- Codeforces 798C:Mike and gcd problem【数论+贪心】