POJ 2101
来源:互联网 发布:程序员能做到多少岁 编辑:程序博客网 时间:2024/05/29 17:48
题意:第一行要求输入由北向南和由东向西的河流条数,第二行输入由北向南相邻河流间的间距,第三行输入由东向西相邻河流间的间距。
要求输出直升机能检查到所有河流所花费的最少金钱数。(1金钱=1千米)
提供两种代码(⊙o⊙)…
代码1:
#include<iostream>
#include<cmath>
usingnamespace std;
intmain()
{
int n,t;
double a,l1,l2;
while(cin>>n>>t)
{
l1=l2=0;
for(int i=1;i!=n;i++)
{
cin>>a;
l1+=a;
}
for(int i=1;i!=t;i++)
{
cin>>a;
l2+=a;
}
a=sqrt(l1*l1+l2*l2);
cout<<(a>(int)a?(int)a+1:(int)a)<<endl;
}
return 0;
}
#include<cmath>
using
int
{
}
代码2:
#include<iostream>
#include<cmath>
usingnamespace std;
intmain()
{
int n,t;
double *a,*b,m;
while(cin>>n>>t)
{
if(n>=2&&t>=2)
{
a=new double[n-1];
b=new double[t-1];
cin>>a[0];
for(int i=1;i<n-1;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
cin>>b[0];
for(int i=1;i<t-1;i++)
{
cin>>b[i];
b[i]+=b[i-1];
}
m=sqrt(pow(a[n-2],2)+pow(b[t-2],2));
cout<<(m>(int)m?(int)m+1:(int)m)<<endl;
delete []a;
delete []b;
}
else if(n==1&&t==1)cout<<0<<endl;
else if(n>=2)
{
a=new double[n-1];
cin>>a[0];
for(int i=1;i<n-1;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
cout<<(int)a[n-2]<<endl;
delete []a;
}
else if(t>=2)
{
b=new double[t-1];
#include<cmath>
using
int
{