CCFCSP 201903-1 小中大

it2026-10-03  2

思路:排序一下可以得到最大值和最小值。 对于中位数,看n的奇偶,如果是奇数,那么中位数只有一个直接输出。 如果n是偶数,看两个中位数和是奇数还是偶数,偶数的话,输出和除以2 奇数的话,除以2保留一位小数即可(其实小数位肯定是5)。

#include<bits/stdc++.h> using namespace std; const int N=1e5+5; int a[N]; int main(){ int n;cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); cout<<a[n]; if(n&1) printf(" %d ",a[n/2+1]); else { if((a[n/2]+a[n/2+1])%2==0) printf(" %d ",(a[n/2]+a[n/2+1])/2); else printf(" %.1f ",(a[n/2]+a[n/2+1])/2.0); } cout<<a[1]; return 0; }
最新回复(0)