View Code of Problem 104

#include <iostream>
#include <math.h>
using namespace std;

int main(){
    double n,v1,v2,t,time;
    while(scanf("%lf%lf%lf%lf",&n,&v1,&v2,&t)!=EOF){
        if(n==0)
            printf("0.00\n");
        if((v1<=0&&v2>=0)||(v1>0&&v2>0&&v2>=v1)||(v1<0&&v2<0&&v2>=v1))
            printf("NO\n");
        else if(v1>=0&&v2<=0){
            time = n*1000/(v1-v2);
            if(time<=t)
                printf("%.2lf\n",time);
            else
                printf("NO\n");
        }
        else{
            time = n/abs(v1-v2);
            if(time<=t)
                printf("%.2lf\n",time);
            else
                printf("NO\n");
        }
    }
    return 0;
}

/*
Main.cc: In function 'int main()':
Main.cc:20:31: error: call of overloaded 'abs(double)' is ambiguous
             time = n/abs(v1-v2);
                               ^
Main.cc:20:31: note: candidates are:
In file included from /usr/include/c++/4.9/cstdlib:72:0,
                 from /usr/include/c++/4.9/ext/string_conversions.h:41,
                 from /usr/include/c++/4.9/bits/basic_string.h:2850,
                 from /usr/include/c++/4.9/string:52,
                 from /usr/include/c++/4.9/bits/locale_classes.h:40,
                 from /usr/include/c++/4.9/bits/ios_base.h:41,
                 from /usr/include/c++/4.9/ios:42,
                 from /usr/include/c++/4.9/ostream:38,
                 from /usr/include/c++/4.9/iostream:39,
                 from Main.cc:1:
/usr/include/stdlib.h:775:12: note: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/4.9/ext/string_conversions.h:41:0,
                 from /usr/include/c++/4.9/bits/basic_string.h:2850,
                 from /usr/include/c++/4.9/string:52,
                 from /usr/include/c++/4.9/bits/locale_classes.h:40,
                 from /usr/include/c++/4.9/bits/ios_base.h:41,
                 from /usr/include/c++/4.9/ios:42,
                 from /usr/include/c++/4.9/ostream:38,
                 from /usr/include/c++/4.9/iostream:39,
                 from Main.cc:1:
/usr/include/c++/4.9/cstdlib:174:3: note: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^
/usr/include/c++/4.9/cstdlib:166:3: note: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^
*/

Double click to view unformatted code.


Back to problem 104