考虑问题:
n的范围是10^5,
输入的数据的范围是10^7,所以直接使用int就可以了。
相关知识点:C++中int型的范围
C++中,int占用4字节,32比特,数据范围为-2147483648~2147483647
[-231~231-1]
代码:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
int n;
int s[100100];
scanf("%d",&n);
int a,b,c;
for(int i=0;i<n;++i)
{
scanf("%d",&s[i]);
if(i==0)
a=s[i];
if(i==n-1)
b=s[i];
}
if(a<b)
{
int temp =a;
a=b;
b=temp;
}
if(n==1)
{
printf("%d %d %d",s[0],s[0],s[0]);
}
else if(n%2==0)
{
c=int((s[n/2-1]+s[n/2])/2.0);
float f=(s[n/2-1]+s[n/2])/2.0;
if(f-c==0)
printf("%d %d %d",a,c,b);
else
{
printf("%d %.1f %d",a,f,b);
}
}
else
{
c=s[(n-1)/2];
printf("%d %d %d",a,c,b);
}
return 0;
}