
string fractionToDecimal(int numerator, int denominator) {
if(numerator==0)
return "0";
string res;
if(numerator>0 ^ denominator>0)
res+="-";
long long llnumerator = abs(static_cast<long long>(numerator));
long long lldenominator = abs(static_cast<long long>(denominator));
res+=to_string(llnumerator/lldenominator);
long long remainder = llnumerator % lldenominator;
if(remainder == 0)
return res;
res+=".";
unordered_map<long long, int> map;
while(remainder){
if(map.find(remainder)!=map.end()){
res.insert(map[remainder],"(");
res+=")";
break;
}
map[remainder]=res.size();
remainder*=10;
res+=to_string(remainder/lldenominator);
remainder %= lldenominator;
}
return res;
}