- 数组清零 2025.9GESP3级T1
- @ 2026-07-17 11:37:40
#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%
- 上传者