有n袋苹果,你可以按如下方式进行一次"操作"(注意一次完整的操作必须先后完成如下两个步骤):
(1) 任选一袋苹果数不小于3个的,从中拿出3个苹果;(2) 任选一袋,向里面放入1个苹果。
请问,最多能够"操作"多少次?
输入格式:多组数据,每组数据第一行是一个正整数n,表示有n袋苹果。(1<=n<=20000)
第二行包含n个由空格分隔的非负整数,表示每袋中的苹果数,每个整数不超过1000000。
输出格式:对每组数据输出一行,表示最多可以进行的操作次数。
#include
#include
#define MAX 10
int getMaxCount(int n,int *num){
int i,count=0;
int sumCount = 0;//取3的次数 (操作的次数)
int sum =0; //手里拥有 1 的个数
for(i=0;i
0)
for(i=0;i
2){
count=sum/3;
sumCount+=count;
sum%=3;
sum+=count;
}
return sumCount;
}
int main(int argc,char ** args){
int n;
int result[MAX];//存储每个数列的最大操作次数
int i,j=0;
while(scanf("%d",&n)!=EOF){//回车后按Ctrl+Z,再回车结束输入
int *num = (int *)calloc(n,sizeof(int));
for(i=0;i