Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define debug(l) cerr<<" smorti hyuniy : "<<#l<<' '<<l<<'\n';
- #include "bits/stdc++.h"
- using namespace std;
- #define all(a) a.begin(), a.end()
- typedef long long ll;
- typedef long double ld;
- bool try_push(ll add, vector<ll>& a, map<ll, bool>& f) {
- for (ll i = 0; i < a.size(); i++) {
- if ((add - a[i]) % (a.size() - i)==0) {
- if (f[(add - a[i])/(a.size()-i)]) {
- return false;
- }
- }
- if ((-add + a[i]) % (a.size() - i)==0) {
- if (f[(-add + a[i]) / (a.size() - i)]) {
- return false;
- }
- }
- }
- for (ll i = 0; i < a.size(); i++) {
- ll k = add - a[i];
- ll fd = a.size() - i;
- if ((add - a[i]) % (a.size() - i) == 0) {
- f[(add - a[i]) / (a.size() - i)] = true;
- }
- if ((-add + a[i]) % (a.size() - i) == 0) {
- f[(-add + a[i]) / (a.size() - i)] = true;
- }
- }
- a.push_back(add);
- return true;
- }
- signed main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- srand(time(NULL));
- bool oke = false;
- while (!oke) {
- vector<ll> d;
- map<ll, bool> k;
- vector<ll> as;
- for (ll i = 1; i <= 1e5; i++) {
- as.push_back(i);
- }
- for (ll i = 0; i <as.size(); i++) {
- swap(as[rand() % as.size()], as[rand() % as.size()]);
- }
- map<ll, bool> tr;
- bool fnd = true;
- for (ll j = 0; j < 350; j++) {
- while (!as.empty()) {
- ll it = as.back();
- if (try_push(it, d, k)) {
- break;
- }
- else {
- as.pop_back();
- }
- }
- if (as.empty()) {
- fnd = false;
- break;
- }
- }
- if (fnd){
- oke = true;
- cout << d.size() + 3<< '\n';
- cout << -100000 << ' ' << -99640 << ' ';
- for (ll& i : d) {
- cout << i << ' ';
- }
- cout << 26720;
- }
- }
- /*
- ll n;
- cin >> n;
- vector<ll> a(n);
- bool ok = false;
- for (ll i = 0; i < n; i++) {
- cin >> a[i];
- if (a[i] == 1 && !ok) {
- a[i] = 2;
- ok = !ok;
- }
- else {
- ok = !ok;
- }
- }
- ll sq = 350;
- ll ans = n - 1;
- for (ll i = -sq; i <= sq; i++) {
- ll mx = 1;
- vector<ll> pos_(n);
- for (ll j = 0; j < n; j++) {
- pos_[j] = (a[j] - i * j);
- }
- sort(all(pos_));
- for (ll k = 0; k < (ll)pos_.size(); k++) {
- ll lft = k;
- while (lft < n && pos_[k] == pos_[lft]) {
- lft++;
- }
- mx = max(mx, lft - k);
- k = lft - 1;
- }
- ans = min(n - mx, ans);
- }
- for (ll i = 0; i < n; i++) {
- map<ll, ll> d;
- for (ll j = 1; j <= sq; j++) {
- if (i + j < n) {
- if ((a[i + j] - a[i]) % (j) == 0) {
- d[(a[i + j] - a[i]) / (j)]++;
- }
- }
- if (i - j >= 0) {
- if ((a[i] - a[i - j]) % j == 0) {
- d[(a[i] - a[i - j]) / j]++;
- }
- }
- }
- ll mx = 1;
- for (auto& it : d) {
- if (it.first != 0) {
- mx = max(mx, it.second + 1);
- }
- }
- ans = min(ans, n - mx);
- }
- cout << ans << '\n';*/
- }
Advertisement
Add Comment
Please, Sign In to add comment