fork download
  1. #include<iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. #define ll long long int
  5. ll gcd(ll a,ll b){
  6. return b==0?a:gcd(b,a%b);
  7. }
  8. int main(){
  9. int t;
  10. cin>>t;
  11. while(t--){
  12.  
  13. string str;
  14. cin>>str;
  15. ll n=0;
  16. for(int i=0;i<str.length();i++){
  17. n=n*10+str[i]-'0';
  18. }
  19.  
  20. // cout<<n<<" number "<<endl;
  21. ll ans=0;
  22. ll L,R,count,T;
  23. count=0;
  24. T=pow(9,str.length());
  25. for(int i=0;i<=9;i++){
  26. ans=0;
  27. R=T;
  28. int j;
  29. bool flag=1;
  30. for(j=0;j<str.length();j++){
  31. R/=9;
  32. if(str[j]-'0'>i){
  33. ans+=((str[j]-'0'-1)*R);
  34. }else if(str[j]-'0'==i){
  35. ans+=((str[j]-'0')*R);
  36. flag=0;
  37. break;
  38. }else{
  39. ans+=((str[j]-'0')*R);
  40. }
  41. }
  42. if(flag&&str[str.length()-1]>i) ans++;
  43. if(i)ans--;
  44. //cout<<(n-ans)<<endl;
  45. if(i==0){
  46. int len=str.length()-1;
  47. ll temp=9;
  48. while(len--){
  49. ans+=(temp);
  50. temp*=10;
  51. }
  52.  
  53. }
  54. count+=(n-ans);
  55. }
  56.  
  57. ll GCD=gcd(count,10*n);
  58. cout<<count/GCD<<"/"<<(10*n)/GCD<<endl;
  59. }
  60. return 0;
  61. }
  62.  
Time limit exceeded #stdin #stdout 5s 3300KB
stdin
Standard input is empty
stdout
Standard output is empty