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; ...