ACm题!求代码!要求用C++写!啊!写上思路!

如题所述

不知道对不对,我说说我的想法。就是把车停在离商店街口最近的地方,然后答案就是(最远-最近)*2

#include <iostream>  
#include <algorithm>  
using namespace std;  

int main()
{
int n;
while(cin>>n)
{
if(!cin) break;
int mx = 0,mn = 101;
int d;
for(int i = 0;i < n; i++)
{
cin>>d;
mx = max(d,mx);
mn = min(d,mn);
}
cout<<(mx-mn)*2<<endl;
}
return 0;
}

追问

if (!cin ) 是什么意思

追答

这是我经常用的一种写法,不加也没事。因为系统判题是从标准输入中一个个读取数据,然后把你的答案与标准输出做对比。if (!cin ) break;表示没有数据读入时退出循环。貌似zoj a+b那道题一定要加这句话,或者用scanf输入,不然一直都是segment fault。

追问

你写的有点错!就是题目并没说是多组输入数据!所以,把while (cin>>n) 改了就可以AC了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-16
int n;
while(scanf("%d",&n) == 1){
int Min = INF;
int Max = 0;
for(int i = 0;i<n;++i){
int a;
cin>>a;
Min = min(Min,a);
Max = max(Max,a);
}
cout<<Max*2 - Min*2<<endl;
}
相似回答