POJ 2101

題意:第一行要求輸入由北向南和由東向西的河流條數,第二行輸入由北向南相鄰河流間的間距,第三行輸入由東向西相鄰河流間的間距。
要求輸出直升機能檢查到所有河流所花費的最少金錢數。(1金錢=1千米)

提供兩種代碼(⊙o⊙)…

代碼1:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
   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;
}



代碼2:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
   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];
           cin>>b[0];
     
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章