Submission #3247226


Source Code Expand

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<algorithm>
#include<vector> 
#include<limits>
#include<numeric>
#include<type_traits>
#include<math.h>
using namespace std;

#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define in(x) cin >> x
#define out(str) cout << str << endl

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

long long N,sum,length;
string S="";

int main(){
    cin>>N;
    sum=0;
    if(N==0){
        out('0');
        return 0;
    }//0
    else if(N<0){
        for(int i=1;;i+=2){
            sum+=pow(2,i);
            if(sum>=abs(N)){
                length=i;
                break;
            }
        }
        for(int i=length;i>=0;i--){
            if(abs(N-pow(-2,i))<=abs(N)){
                S+="1";
                N-=pow(-2,i);
            }else{
                S+="0";
            }
        }
    }//hu
    else{
        for(int i=0;;i+=2){
            sum+=pow(2,i);
            if(sum>=abs(N)){
                length=i;
                break;
            }
        }
        for(int i=length;i>=0;i--){
            if(abs(N-pow(-2,i))<=abs(N)){
                S+="1";
                N-=pow(-2,i);
            }else{
                S+="0";
            }
        }
    }//sei
    out(S);
}

Submission Info

Submission Time
Task C - Base -2 Number
User yusuke0518
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1467 Byte
Status CE

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:39:31: error: call of overloaded ‘abs(double)’ is ambiguous
             if(abs(N-pow(-2,i))<=abs(N)){
                               ^
In file included from ./Main.cpp:2:0:
/usr/include/stdlib.h:775:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/5/ext/string_conversions.h:41:0,
                 from /usr/include/c++/5/bits/basic_string.h:5334,
                 from /usr/include/c++/5/string:52,
                 from /usr/include/c++/5/bits/locale_classes.h:40,
                 from /usr/include/c++/5/bits/ios_base.h:41,
                 from /usr/include/c++/5/ios:42,
                 from /usr/include/c++/5/ostream:38,
                 from /usr/include/c++/5/iostream:39,
                 from ./Main.cpp:3:
/usr/include/c++/5/cstdlib:179:3: note: candidate: __int128 std::abs(__int128)
   abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; ...