ivnikkk

Untitled

Mar 23rd, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 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 < 350; 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.             cout << -100000 << ' ' << -99640 << ' ';
  74.             for (ll& i : d) {
  75.                 cout << i << ' ';
  76.             }
  77.             cout << 26720;
  78.         }
  79.     }
  80.     /*
  81.     ll n;
  82.     cin >> n;
  83.     vector<ll> a(n);
  84.     bool ok = false;
  85.     for (ll i = 0; i < n; i++) {
  86.         cin >> a[i];
  87.         if (a[i] == 1 && !ok) {
  88.             a[i] = 2;
  89.             ok = !ok;
  90.         }
  91.         else {
  92.             ok = !ok;
  93.         }
  94.     }
  95.     ll sq = 350;
  96.     ll ans = n - 1;
  97.     for (ll i = -sq; i <= sq; i++) {
  98.         ll mx = 1;
  99.         vector<ll> pos_(n);
  100.         for (ll j = 0; j < n; j++) {
  101.             pos_[j] = (a[j] - i * j);
  102.         }
  103.         sort(all(pos_));
  104.         for (ll k = 0; k < (ll)pos_.size(); k++) {
  105.             ll lft = k;
  106.  
  107.             while (lft < n && pos_[k] == pos_[lft]) {
  108.                 lft++;
  109.             }
  110.            
  111.             mx = max(mx, lft - k);
  112.             k = lft - 1;
  113.         }
  114.         ans = min(n - mx, ans);
  115.     }
  116.     for (ll i = 0; i < n; i++) {
  117.         map<ll, ll> d;
  118.         for (ll j = 1; j <= sq; j++) {
  119.             if (i + j < n) {
  120.                 if ((a[i + j] - a[i]) % (j) == 0) {
  121.                     d[(a[i + j] - a[i]) / (j)]++;
  122.                 }
  123.             }
  124.             if (i - j >= 0) {
  125.                 if ((a[i] - a[i - j]) % j == 0) {
  126.                     d[(a[i] - a[i - j]) / j]++;
  127.                 }
  128.             }
  129.         }
  130.         ll mx = 1;
  131.         for (auto& it : d) {
  132.             if (it.first != 0) {
  133.                 mx = max(mx, it.second + 1);
  134.             }
  135.         }
  136.         ans = min(ans, n - mx);
  137.     }
  138.     cout << ans << '\n';*/
  139. }
Advertisement
Add Comment
Please, Sign In to add comment