Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// __Macro's__
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define II pair<int,int>
- #define III pair<int, II>
- #define VL vector<ll>
- #define VI vector<int>
- #define VII vector<II>
- #define VIII vector<III>
- #define VVI vector<vector<int>>
- #define VVII vector<vector<II>>
- #define fr first
- #define sc second
- #define mkpr make_pair
- #define PQ priority_queue
- #define pb push_back
- #define eb emplace_back
- #define all(v) v.begin(), v.end()
- #define LINE putc('\n', stdout)
- #define SPACE putc(' ' , stdout)
- #define TAB putc('\t', stdout)
- #define msg(x) printf(#x)
- #define fillarr(arr, val) fill((int*)arr, (int*)arr+(sizeof(arr)/sizeof(int)), val)
- #define _log2(x) (31-__builtin_clz(x))
- #define INF (ll)2e17
- #define MOD 1000000007
- #define getint ReadInt()
- const char IO_MODE = 0; // in-->00<--out (MSB-->LSB) | 0: Norm, 1: Fast
- constexpr ll operator "" _K(unsigned ll n) {return 1000*n;}
- constexpr ll operator "" _M(unsigned ll n) {return 1000000*n;}
- void operator "" _print(char const* s, size_t n) {printf("%s\n", s);}
- inline ll ReadInt(){ll x=0,s=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')s=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';
- c=getchar();}return s*x;}inline void WriteInt(ll x){char c[20];if(!x){putchar('0');return;}if(x<0)putchar('-'),x=-x;int i=0;while(x>0)
- c[++i]=x%10,x/=10;while(i)putchar(c[i--]+48);}template <typename T>inline void out(T x){if(IO_MODE&1)WriteInt(x);else if(typeid(x)==typeid(int))
- printf("%i", x);else if(typeid(x)==typeid(ll)) printf("%lld", x);}template<typename T, typename... Args>inline void out(T x,Args...args)
- {out(x);SPACE;out(args...);}template <typename T>inline void in(T &x){if(IO_MODE&2) x=ReadInt();else if(typeid(x)==typeid(int))
- scanf("%i",&x);else if(typeid(x)==typeid(ll)) scanf("%lld",&x);}template<typename T, typename... Args>
- inline void in(T &x,Args&...args){in(x);in(args...);}
- int aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,mm,nn,oo,pp,qq,rr,ss,tt,uu,vv,ww,xx,yy,zz;
- int tc;
- ///
- #define double long double
- int main()
- {
- in(tc);
- rep:
- while(tc--)
- {
- double d;
- int prec;
- string s;
- cin>>s;
- stringstream ss(s);
- ss>>d;
- for(int i=0 ; i<s.size() ; i++)
- if(s[i]=='.')
- prec=s.size()-i-1;
- double real = floor(d);
- double decimal = d-real;
- if((ll)real)
- {
- if(abs(decimal)<1e-20) {cout << (ll)real << "\"" << endl; goto rep;}
- else cout << (ll)real << " ";
- }
- d = decimal;
- double p=1.0;
- while(prec--) p*=10;
- double b=1.0;
- for(int i=0 ; i<=128 ; i++)
- {
- double a = b*d;
- double a1 = floor(a);
- double a2 = ceil(a);
- double d1 = a1/b;
- double d2 = a2/b;
- if( abs(d-round(d1*p)/p)<1e-16 || abs(d-ceil(d1*p)/p)<1e-16 || abs(d-floor(d1*p)/p)<1e-16 )
- {cout << round(a1) << "/"<<round(b)<<"\"" << endl; goto rep;}
- if( abs(d-round(d2*p)/p)<1e-16 || abs(d-ceil(d2*p)/p)<1e-16 || abs(d-floor(d2*p)/p)<1e-16 )
- {cout << round(a2) << "/"<<round(b)<<"\"" << endl; goto rep;}
- b*=2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement