#include<bits/stdc++.h>
using namespace std;
int cnt,n,a[100],k,j;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    a[k]=a[0];
    a[j]=a[0];
    while(a[j])//a[0]会超时
    {
        for(int i=0;i<n;i++)
        {
            if(a[i]>=a[k])
            {
                k=i;
                a[k]=a[i];
            }
            if(a[i]<a[j]&&a[i]!=0)
            {
                j=i;
                a[j]=a[i];
            }
        }
        a[k]-=a[j];
        cnt++;
    }
    cout<<cnt;
    return 0;
}
/*
2 3 4 a[k]=4 a[j]=2
2 3 2 a[k]=2 a[j]=2 -->a[k]=3 a[j]=2
2 1 2 a[k]=1 a[j]=2 -->a[k]=2 a[j]=1
2 1 1 a[k]=1 a[j]=1 -->a[k]=2 a[j]=1
1 1 1 a[k]=1 a[j]=1 -->a[k]=1 a[j]=1
1 1 0 a[k]=0 a[j]=1 -->a[k]=1 a[j]=1
1 0 0 a[k]=0 a[j]=1 -->a[k]=1 a[j]=1
0 0 0 a[k]=0 a[j]=0 这里a[j]是0,退出循环,是6
1 3 2 2 5
1 3 2 2 4
1 3 2 2 3
1 3 2 2 2
1 2 2 2 2
1 2 2 2 1
1 2 2 1 1
1 2 1 1 1
1 1 1 1 1
1 1 1 1 0
1 1 1 0 0
1 1 0 0 0
1 0 0 0 0
0 0 0 0 0<--这里a[j]也变成0了,为什么没退出循环,反而是13? 
*/

0 条评论

目前还没有评论...

信息

ID
2973
难度
7
分类
(无)
标签
递交数
248
已通过
47
通过率
19%
上传者