-3+1
-3+1
題目詳情:
有一個數列,所有的數都是非負整數,你可以進行如下方式進行一次操作(注意一次完整的操作必須先后完成如下兩個步驟):
(1) 任選一個不小于3的數,把它減少3。
(2) 任選一個數把它增加1。
請問,最多能夠操作多少次?
輸入格式:
多組數據,每組數據第一行是一個正整數n,表示數列中數的個數。(1<=n<=20000)
第二行包含n個空格分隔的非負整數,每個整數不超過1000000。
輸出格式:
對每組數據輸出一行,表示最多可以進行的操作次數。
答題說明:
輸入樣例
1
10
2
10 11
輸出樣例:
4
10
AC碼
#include<stdio.h> int main() {long long n,a,sum=0,num[3],k,i;while(~scanf("%lld",&n)){sum=0;num[0]=0;num[1]=0;num[2]=0;for(i=0;i<n;i++){scanf("%lld",&a);sum+=a/3;a=a%3;num[a]++;}k=sum;if(k>=1)sum+=num[2];while(k>=2&&num[1]>0){k=k-1;num[1]--;sum++;}while(k>=3){sum+=k/3;k=k/3+k%3;}printf("%lld\n",sum);}return 0; }
總結
- 上一篇: HTTPS 的 7 次握手以及 9 倍时
- 下一篇: 痛心!Pandownload开发者被抓!