vijos P1123 均分纸牌

vijos P1123 均分纸牌

只要不停地移动就可以了,纸牌数可以为负(尽管与生活实际不符),但是可以这么认为:纸牌为负的堆最终可以被后面的纸牌补充。

以下是我的代码:

#include < stdio.h >
int  n,a[ 100 ];
long  ave = 0 ,result = 0 ;
void  read()
{
     
int i;
     scanf(
"%d",&n);
     
for(i=0;i<n;i++)
     
{
        scanf(
"%d",&a[i]);
        ave
+=a[i];
     }

     ave
/=n;
}

void  solve()
{
     
int i;
     
long sum=0;
     
for(i=0;i<n;i++)
        a[i]
-=ave;
     
for(i=0;i<n-1;i++)
     
{
        
if(a[i]>0)
        
{
           a[i
+1]+=a[i];
           result
++
        }

        
else if(a[i]<0)
        
{
            a[i
+1]-=-a[i];
            result
++;
        }

     }

}

void  write()
{
     printf(
"%ld\n",result);
}

int  main()
{
    read();
    solve();
    write();
return 0;
}

你可能感兴趣的:(vijos P1123 均分纸牌)