3 solutions

  • 1
    @ 2026-5-23 10:09:14

    qqqqqqqqqqqqwwwwwwwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

    • 0
      @ 2026-5-23 10:18:16
      • 0
        @ 2026-2-9 19:17:31
        #include<bits/stdc++.h>
        using namespace std;
        const int N=1e6+10;
        double a[N];
        int main()
        {
        	int n;
        	cin>>n;
        	int maxid,minid; //最大值最小值所在的位置 
        	double sum=0;
        	for(int i=1;i<=n;i++)
        	{
        		cin>>a[i];
        		if(i==1||a[i]>a[maxid])
        		{
        			maxid=i;
        		}
        		if(i==1||a[i]<a[minid])
        		{
        			minid=i;
        		}
        		sum+=a[i];
        	}
        	sum=sum-a[maxid]-a[minid]; //除了最大值和最小值以外的总和 
        	double ave=sum/(n-2); //计算平均值 
        	double res=0;
        	for(int i=1;i<=n;i++)
        	{
        		if(i==maxid||i==minid) continue; //如果是最大值或最小值所在的位置,那么就继续 
        		double t=abs(a[i]-ave); //计算当前误差 
        		if(t>res) //保留最大差值 
        		{
        			res=t;
        		}
        	}
        	cout<<fixed<<setprecision(2)<<ave<<" "<<res;
        	return 0;
        }
        
        • 1

        Information

        ID
        897
        Time
        1000ms
        Memory
        256MiB
        Difficulty
        3
        Tags
        (None)
        # Submissions
        340
        Accepted
        64
        Uploaded By