aboutsummaryrefslogtreecommitdiff
path: root/works/life/algorithm-contest-2/generator/5/3.cpp
blob: 62d18c4779d774717a51b399cbae2d81e4fcb23a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <random>
#include <vector>

using std::cout;

int main() {
  std::default_random_engine engine(std::random_device{}());
  std::uniform_int_distribution<int> insert_distribution(0, 997);
  std::uniform_int_distribution<int> distribution(1, 100000);
  const int SIZE = 1000;
  std::vector<int> v;

  for (int i = 0; i < SIZE - 1; i++) {
    v.push_back(distribution(engine));
  }

  int K = 320;

  int a_index = insert_distribution(engine);
  int a = v[a_index];
  int b_index = insert_distribution(engine);
  while (b_index == a_index) {
    b_index = insert_distribution(engine);
  }
  int b = v[b_index];

  int c_index = insert_distribution(engine);
  while (c_index == a_index && c_index == b_index) {
    c_index = insert_distribution(engine);
  }
  int c = v[c_index];

  int d = (((-a - b - c) % K + K) % K) + 20 * K;

  int d_index = insert_distribution(engine);

  v.insert(v.cbegin() + d_index, c);

  cout << SIZE << ' ' << K << '\n';

  for (int i = 0; i < SIZE; i++) {
    cout << v[i] << ' ';
  }

  return 0;
}