Advertisement
Farjana_akter

Untitled

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