HDU 5744 Keep On Movin
简单题。首先统计有多少奇数,记为sz个。如果sz=0,那么答案就是sum(a[i]);否则,答案为(sum(a[i])-sz)/(2*sz)*2+1。
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const int maxn=100000+10; int T,n,a[maxn]; int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); int sz=0,sum=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]%2==1) sz++; sum=sum+a[i]; } int ans; if(sz==0) ans=sum; else ans=1+(sum-sz)/(2*sz)*2; printf("%d\n",ans); } return 0; }