Maruf_Hasan

Hacking Cipher

Oct 24th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<iostream>
  3. #include<cstdio>
  4. using namespace std;
  5. #define ll long long
  6. ll StringtoNumber(char c)
  7. {
  8. return c-'0';
  9. }
  10. int main()
  11. {
  12. string str;
  13. char String[1001000];
  14. scanf("%s",String);
  15. ll a,b;
  16. scanf("%lld %lld",&a,&b);
  17. str=String;
  18. // cout<<a<<" "<<b<<endl;
  19. ll num=0;
  20. int cnt=0;
  21. bool flag=false;
  22. vector<int>v;
  23. while(true)
  24. {
  25. while(num<a)
  26. { if(cnt==str.length())
  27. {
  28. flag=true;
  29. break;
  30. }
  31. ll x=StringtoNumber(str[cnt]);
  32. num=num*10+x;
  33. // cout<<num<<endl;
  34. cnt++;
  35. // cout<<cnt<<" "<<num<<endl;
  36. }
  37. if(num%a==0)
  38. {
  39. // cout<<num<<" "<<str[cnt]<<endl;
  40. if(str[cnt]=='0')
  41. {
  42. while(str[cnt]=='0')
  43. {
  44. if(cnt==str.length())
  45. break;
  46. cnt++;
  47. }
  48. // cout<<cnt<<endl;
  49. }
  50. // cout<<cnt<<endl;
  51. v.push_back(cnt);
  52. num=0;
  53. }
  54. else
  55. {
  56. num=num%a;
  57. }
  58. if(flag==true || cnt==str.length())
  59. {
  60. break;
  61. }
  62. }
  63.  
  64. num=0;
  65. int bal=0;
  66. for(int i=0;i<v.size();i++)
  67. {
  68. if(v[i]==str.length())
  69. {
  70. bal++;
  71. }
  72. }
  73. if(bal==v.size())
  74. {
  75. cout<<"NO"<<endl;
  76. return 0;
  77. }
  78. int flg=0;
  79. for(int i=0;i<v.size();i++)
  80. {
  81.  
  82. int pos=v[i];
  83. while(pos<str.length())
  84. {
  85. // cout<<num<<endl;
  86. ll x=StringtoNumber(str[pos]);
  87. num=num*10+x;
  88. if(num>=b)
  89. {
  90. num=num%b;
  91. }
  92. pos++;
  93. }
  94. if(num==0)
  95. { flg=1;
  96. cout<<"YES"<<endl;
  97. //cout<<"mara kha"<<endl;
  98. for(int j=0;j<v[i];j++)
  99. {
  100. cout<<str[j];
  101. }
  102. //cout<<"asdas"<<endl;
  103. cout<<endl;
  104. for(int j=v[i];j<str.length();j++)
  105. {
  106. cout<<str[j];
  107. }
  108. cout<<endl;
  109. break;
  110. return 0;
  111. }
  112. }
  113. if(flg==0)
  114. {
  115. cout<<"NO"<<endl;
  116. }
  117. return 0;
  118. }
Add Comment
Please, Sign In to add comment