Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <random>
  6. using namespace std;
  7.  
  8. int l, first, delta, start, total;
  9.  
  10. int main() {
  11.     freopen("input.txt", "r", stdin);
  12.     freopen("output.txt", "w", stdout);
  13.  
  14.     cin >> l;
  15.     vector <int> numbers(2 * l);
  16.  
  17.     for (int i = 0; i < 2 * l; i++) {
  18.         cin >> numbers[i];
  19.     }
  20.    
  21.     if (l >= 15 ) {
  22.         default_random_engine generator;
  23.         uniform_int_distribution<int> distribution(5, l * 2 - 25);
  24.         start = distribution(generator);
  25.  
  26.         for (int i = start; i < start + 20; i++) {
  27.             for (int i2 = i - 5; i2 < start + 5; i2++) {
  28.                 if (i == i2) {
  29.                     continue;
  30.                 }
  31.                 delta = max(i, i2) - min(i, i2);
  32.                 total = 2;
  33.                 for (int n = min(i, i2) - delta; n >= 1; n - delta) {
  34.                     if (find(numbers.begin(), numbers.end(), n) == numbers.end()) {
  35.                         break;
  36.                     }else {
  37.                         total += 1;
  38.                         first = n;
  39.                         if (total == l) {
  40.                             cout << first << " " << delta;
  41.                             return 0;
  42.                         }
  43.                     }
  44.                 }
  45.                 for (int n = max(i, i2) + delta; n >= 100000; n += delta) {
  46.                     if (find(numbers.begin(), numbers.end(), n) == numbers.end()) {
  47.                         break;
  48.                     }
  49.                     else {
  50.                         total += 1;
  51.                         if (total == l) {
  52.                             cout << first << " " << delta;
  53.                             return 0;
  54.                         }
  55.                     }
  56.  
  57.  
  58.                 }
  59.  
  60.             }
  61.         }
  62.  
  63.     }
  64.    
  65.  
  66.     cout << first << " " << delta;
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement