Advertisement
BotByte

Untitled

Oct 11th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll long long
  6. #define MAX 100005
  7. ll a, b, c, d;
  8. ll arr[MAX];
  9.  
  10. bool check(ll n, ll m)
  11. {
  12. ll zo = n*m;
  13. ll oz = 0;
  14. if(zo+oz == b+c) return true;
  15. else return false;
  16. }
  17.  
  18. string str(ll n, ll m)
  19. {
  20. ll zo = n*m;
  21. ll oz = 0;
  22. ll mov = zo-b;
  23. ll st = 0, mid = 0;
  24. while(mov != 0){
  25. if(mov < n){
  26. mid = n-mov;
  27. mov = 0;
  28. break;
  29. }
  30. else {
  31. mov -= n;
  32. st++;
  33. }
  34. }
  35. string s = "";
  36. if(mid == 0){
  37. for(ll i=0; i<st; i++){
  38. s += '1';
  39. }
  40. for(ll i=0; i<n; i++){
  41. s += '0';
  42. }
  43. for(ll i=0; i<m-st; i++){
  44. s += '1';
  45. }
  46. return s;
  47. }
  48. else {
  49. for(ll i=0; i<st; i++){
  50. s += '1';
  51. }
  52. for(ll i=0; i<mid; i++){
  53. s += '0';
  54. }
  55. s += '1';
  56. for(ll i=0; i<n-mid; i++){
  57. s += '0';
  58. }
  59. for(ll i=0; i<m-st-1; i++){
  60. s += '1';
  61. }
  62. return s;
  63. }
  64. }
  65.  
  66. int main()
  67. {
  68. scanf("%lld %lld %lld %lld", &a, &b, &c, &d);
  69. for(ll i=0; i<MAX; i++){
  70. arr[i] = (i*(i-1))/2;
  71. }
  72. vector<ll> V1, V2;
  73. for(ll i=0; i<MAX; i++){
  74. if(arr[i] == a) V1.push_back(i);
  75. }
  76. for(ll i=0; i<MAX; i++){
  77. if(arr[i] == d) V2.push_back(i);
  78. }
  79. if(V1.size() == 0 || V2.size() == 0){
  80. cout << "impossible";
  81. return 0;
  82. }
  83. for(ll i=0; i<V1.size(); i++){
  84. for(ll j=0; j<V2.size(); j++){
  85. if(check(V1[i], V2[j])){
  86. string ans = str(V1[i], V2[j]);
  87. cout << ans;
  88. return 0;
  89. }
  90. }
  91. }
  92. cout << "impossible";
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement