注意:
初试输入时有奇数。
如果有奇数,自己留一半+1,给别人一半。
偶数正常。
#include<iostream>
#include<vector>
using namespace std;
const int maxn=10001;
int a[maxn];
int t[maxn];
bool flag=true;
int main(){
int n;
while(cin>>n){
if(n==0)break;
int sum=0,temp0;
for(int i=0;i<n;i++){
cin>>a[i];
if(n==1)continue;
if(i==0){
temp0=a[i];
}else{
if(temp0!=a[i]){
flag=false;
}
}
if(a[i]%2!=0){
t[i]=a[i]/2;
a[i]=t[i]+1;
}else{
a[i]/=2;
t[i]=a[i];
}
}
if(flag){
cout<<0<<" "<<a[0]<<endl;continue;
}
flag=true;
while(flag){
sum++;
for(int i=0;i<n;i++){
if(i==0){
a[i]+=t[n-1];
if(a[i]%2!=0)a[i]++;
temp0=a[i];
}else{
a[i]+=t[i-1];
if(a[i]%2!=0)a[i]++;
}
if(temp0!=a[i])flag=false;
}
if(flag)break;
flag=true;
for(int i=0;i<n;i++){
a[i]/=2;
t[i]=a[i];
}
}
cout<<sum<<" "<<a[0]<<endl;
}
return 0;
}


京公网安备 11010502036488号