Advertisement
ivnikkk

Untitled

Mar 23rd, 2022
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define debug(l) cerr<<" smorti hyuniy : "<<#l<<' '<<l<<'\n';
  3. #include "bits/stdc++.h"
  4. using namespace std;
  5. #define all(a) a.begin(), a.end()
  6. typedef long long ll;
  7. typedef long double ld;
  8. bool try_push(ll add, vector<ll>& a, map<ll, bool>& f) {
  9.     for (ll i = 0; i < a.size(); i++) {
  10.         if ((add - a[i]) % (a.size()  - i)==0) {
  11.             if (f[(add - a[i])/(a.size()-i)]) {
  12.                 return false;
  13.             }
  14.         }
  15.         if ((-add + a[i]) % (a.size() - i)==0) {
  16.             if (f[(-add + a[i]) / (a.size() - i)]) {
  17.                 return false;
  18.             }
  19.         }
  20.     }
  21.     for (ll i = 0; i < a.size(); i++) {
  22.         ll k = add - a[i];
  23.         ll fd = a.size()  - i;
  24.         if ((add - a[i]) % (a.size()  - i) == 0) {
  25.             f[(add - a[i]) / (a.size()  - i)] = true;
  26.         }
  27.         if ((-add + a[i]) % (a.size()  - i) == 0) {
  28.             f[(-add + a[i]) / (a.size()  - i)] = true;
  29.         }
  30.     }
  31.     a.push_back(add);
  32.     return true;
  33. }
  34. signed main() {
  35. #ifdef _DEBUG
  36.     freopen("input.txt", "r", stdin);
  37.     freopen("output.txt", "w", stdout);
  38. #endif
  39.     ios_base::sync_with_stdio(false);
  40.     cin.tie(nullptr);
  41.     srand(time(NULL));
  42.     bool oke = false;
  43.     while (!oke) {
  44.         vector<ll> d;
  45.         map<ll, bool> k;
  46.         vector<ll> as;
  47.         for (ll i = 1; i <= 1e5; i++) {
  48.             as.push_back(i);
  49.         }
  50.         for (ll i = 0; i <as.size(); i++) {
  51.             swap(as[rand() % as.size()], as[rand() % as.size()]);
  52.         }
  53.         map<ll, bool> tr;
  54.         bool fnd = true;
  55.         for (ll j = 0; j < 250; j++) {
  56.             while (!as.empty()) {
  57.                 ll it = as.back();
  58.                 if (try_push(it, d, k)) {
  59.                     break;
  60.                 }
  61.                 else {
  62.                     as.pop_back();
  63.                 }
  64.             }
  65.             if (as.empty()) {
  66.                 fnd = false;
  67.                 break;
  68.             }
  69.         }
  70.         if (fnd){
  71.             oke = true;
  72.             cout << d.size() + 3<< '\n';
  73.             // здесь нужно поставить 1 , 1 + CONST
  74.             //cout << 1 << ' ' << 1 + 251 << ' ';
  75.             for (ll& i : d) {
  76.                 cout << i << ' ';
  77.             }
  78.             // здесь ставим 1 + (CONST + 2) * ( CONST+ 1)
  79.             //cout << 1 +  252 * (251);
  80.         }
  81.     }
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement