2 solutions

  • 2
    @ 2025-11-2 14:46:36
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int a[N];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	int cnt=0;
    	while(1)
    	{
    		bool st=true;
    		for(int i=1;i<=n;i++) //判断是否全0 
    		{
    			if(a[i]!=0)
    			{
    				st=false;
    			}
    		}
    		if(st) break; //全零 
    		int minv=1010,maxv=0,maxid,minid; //找到最大值最小值的位置和值 
    		for(int i=1;i<=n;i++)
    		{
    			if(a[i]>maxv)
    			{
    				maxv=a[i],maxid=i;
    			}
    			if(a[i]>0&&a[i]<minv)
    			{
    				minv=a[i],minid=i;
    			}
    		}
    		cnt++; //次数增加 
    		a[maxid]-=a[minid]; //根据题目进行操作 
    	}
    	cout<<cnt;
       return 0;
    } 
     
    
    • 0
      @ 2026-6-20 16:24:24

      👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍

      • 1

      Information

      ID
      2888
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      # Submissions
      33
      Accepted
      10
      Uploaded By