Advertisement
Farjana_akter

Untitled

Aug 7th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<string.h>
  3. #include<stdio.h>
  4. using namespace std;
  5. typedef long long int ll;
  6.  
  7. string addi(string s1,string s2)
  8. {
  9. int i,j,k,sum=0,carry=0,len1,len2;
  10. string ans="";
  11. if(s1.length()>s2.length())
  12. swap(s1,s2);
  13. reverse(s1.begin(),s1.end());
  14. reverse(s2.begin(),s2.end());
  15. len1=s1.length();
  16. len2=s2.length();
  17. for(i=0;i<len1;i++)
  18. {
  19. sum=(s1[i]-'0' + s2[i]-'0')+carry;
  20. ans.push_back(sum%10 + '0');
  21. carry=sum/10;
  22. }
  23. for(i=len1;i<len2;i++)
  24. {
  25. sum=(s2[i]-'0')+carry;
  26. ans.push_back(sum%10 + '0');
  27. carry=sum/10;
  28. }
  29. if(carry)
  30. {
  31. ans.push_back(carry + '0');
  32. }
  33. reverse(ans.begin(),ans.end());
  34. return ans;
  35. }
  36.  
  37. bool checkall(string s)
  38. {
  39. ll len=s.size();
  40. for(ll i=0;i<len;i++)
  41. {
  42. if(s[i]!='9')
  43. return false;
  44. }
  45. return true;
  46. }
  47.  
  48.  
  49. void oddfun(string s)
  50. {
  51. ll len=s.size();
  52. ll i,j,k,l;
  53. if(checkall(s))
  54. {
  55. cout<<1;
  56. ll sz=len-1;
  57. while(sz--)
  58. cout<<0;
  59. cout<<1<<endl;
  60. }
  61. else
  62. {
  63. string a="",b="",c="",res="";
  64. ll mid=(len/2);
  65. for(i=0; i<mid; i++)
  66. a+=s[i];
  67. res+=a;
  68. res+=s[mid];
  69. reverse(a.begin(),a.end());
  70. res+=a;
  71. if(res>s)
  72. {
  73. cout<<res<<endl;
  74. }
  75. else
  76. {
  77. if(s[mid]!='9')
  78. {
  79. res="",a="";
  80. for(i=0; i<mid; i++)
  81. a+=s[i];
  82. res+=a;
  83. ll x=(s[mid]-'0')+1;
  84. res+=(x+'0');
  85. reverse(a.begin(),a.end());
  86. res+=a;
  87. cout<<res<<endl;
  88. }
  89. else
  90. {
  91. a="",res="";
  92. for(i=0; i<=mid; i++)
  93. {
  94. a+=s[i];
  95. }
  96. b=addi(a,"1");
  97. for(i=0; i<b.size()-1; i++)
  98. c+=b[i];
  99. res+=b;
  100. reverse(c.begin(),c.end());
  101. res+=c;
  102. cout<<res<<endl;
  103. }
  104. }
  105. }
  106. }
  107.  
  108. void evenfun(string s)
  109. {
  110. ll len=s.size();
  111. ll i,k,j,l;
  112. string a="",b="",c="",res="";
  113. if(checkall(s))
  114. {
  115. cout<<1;
  116. ll sz=len-1;
  117. while(sz--)
  118. cout<<0;
  119. cout<<1<<endl;
  120. }
  121. else
  122. {
  123. ll mid=len/2;
  124. for(i=0; i<mid; i++)
  125. a+=s[i];
  126. res+=a;
  127. reverse(a.begin(), a.end());
  128. res+=a;
  129. if(res>s)
  130. cout<<res<<endl;
  131. else
  132. {
  133. if(s[mid-1]!='9')
  134. {
  135. a="",res="";
  136. s[mid-1]=(s[mid-1]-'0'+1)+'0';
  137. for(i=0; i<mid; i++)
  138. a+=s[i];
  139. res+=a;
  140. reverse(a.begin(), a.end());
  141. res+=a;
  142. cout<<res<<endl;
  143. }
  144. else
  145. {
  146. res="",a="";
  147. for(i=0; i<=mid; i++)
  148. a+=s[i];
  149. b=addi(a,"1");
  150. for(i=0; i<b.size()-1; i++)
  151. c+=b[i];
  152. res+=c;
  153. reverse(c.begin(),c.end());
  154. res+=c;
  155. cout<<res<<endl;
  156. }
  157. }
  158. }
  159. }
  160.  
  161. int main()
  162. {
  163.  
  164. ll t,i,j,k,cas;
  165. cin>>t;
  166. for(cas=1; cas<=t; cas++)
  167. {
  168. string s;
  169. cin>>s;
  170. cout<<"Case "<<cas<<": ";
  171. if(s.size()%2==0)
  172. {
  173. evenfun(s);
  174. }
  175. else
  176. {
  177. oddfun(s);
  178. }
  179. }
  180. return 0;
  181. }
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement