您的位置:首页 > 其它

codeforces 的 Codeforces Round #273 (Div. 2) --C Table Decorations

2014-10-25 12:24 399 查看
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.

Sample test(s)

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.

从网上找到两种代码,算法的核心思路是一样的。有待仔细研究一下,我想过要用该路的问题,但好像又行不通。

最后演变成了规律性的解。

#include <stdio.h>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
long long r;
long long g,b,ans;
int main()
{
scanf("%I64d%I64d%I64d",&r,&g,&b);

ans=min(min(min((r+g+b)/3,r+g),r+b),b+g);

printf("%I64d\n",ans);

return 0;
}


#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define INF 0x7fffffff

long long a[4], t;

int main()
{
#ifdef sxk
freopen("in.txt","r",stdin);
#endif
int n;
while(scanf("%lld%lld%lld",&a[0], &a[1], &a[2])!=EOF)
{
sort(a, a+3);
if(a[2] > 2*(a[0]+a[1])) t = a[0] + a[1];
else
t = (a[0]+a[1]+a[2])/3;
printf("%lld\n", t);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: