Advertisement
tanasaradu

Untitled

Nov 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("ech.in");
  4. ofstream fout("ech.out");
  5. const int NMAX=25;
  6. string s;
  7. int nr[NMAX*NMAX*NMAX],n,b[NMAX],nb;
  8. inline int R()
  9. {
  10. int r=0;
  11. for(int i=n;i>=1;i--)
  12. r=(r*10+nr[i])%11;
  13. return r;
  14. }
  15. inline void SUM()
  16. {
  17. int t=0,cifra;
  18. if(n<nb)
  19. {
  20. for(int i=n+1;i<=nb;i++)
  21. nr[i]=0;
  22. n=nb;
  23. }
  24. else for(int i=nb+1;i<=n;i++)
  25. b[i]=0;
  26. for(int i=1;i<=n;i++)
  27. {
  28. cifra=nr[i]+b[i]+t;
  29. nr[i]=cifra%10;
  30. t=cifra/10;
  31. }
  32. if(t)
  33. nr[++n]=t;
  34. }
  35. inline bool CHECK()
  36. {
  37. int s,s1;
  38. s=s1=0;
  39. for(int i=1;i<=n;i++)
  40. if(!(i&1))
  41. s+=nr[i];
  42. else s1+=(nr[i]);
  43. return (s==s1);
  44. }
  45. int main()
  46. {
  47. fin>>s;
  48. for(int i=s.size()-1;i>=0;i--)
  49. nr[++n]=(s[i]-'0');
  50. int k=(11-R());
  51. while(k)
  52. {
  53. ++nb;
  54. b[nb]=k%10;
  55. k/=10;
  56. }
  57. SUM();
  58. nb=2;
  59. b[1]=b[2]=1;
  60. while(!CHECK())
  61. SUM();
  62. for(int i=n;i>=1;i--)
  63. fout<<nr[i];
  64. fin.close();
  65. fout.close();
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement