Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #ifdef _MSC_VER
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #  include <intrin.h>
  4. #  define __builtin_popcount __popcnt
  5. #endif
  6.  
  7. #define _USE_MATH_DEFINES
  8.  
  9. #include <stdio.h>
  10. #include <iostream>
  11. #include <vector>
  12. #include <unordered_map>
  13. #include <stack>
  14. #include <math.h>
  15. #include <map>
  16. #include <functional>
  17. #include <algorithm>
  18. #include <queue>
  19. #include <set>
  20.  
  21. using namespace std;
  22.  
  23.  
  24. int main()
  25. {
  26. #if defined(_DEBUG)
  27.     freopen("input.txt", "r", stdin);
  28.     freopen("output.txt", "w", stdout);
  29. #endif
  30.     cin.tie(NULL);
  31.     ios_base::sync_with_stdio(false);
  32.     cout.tie(NULL);
  33.  
  34.     int n;
  35.     cin >> n;
  36.  
  37.     vector<long long> nums(n);
  38.     for (int i = 0; i < n; i++)
  39.     {
  40.         cin >> nums[i];
  41.     }
  42.  
  43.     vector<unordered_map<long long, int>> vx(n);
  44.     for (int i = 0; i < n; i++)
  45.     {
  46.         for (int j = i + 1; j < n; j++)
  47.         {
  48.             long long dist = nums[j] - nums[i];
  49.             vx[i][dist] = j;
  50.         }
  51.     }
  52.  
  53.     int ans = 2;
  54.     for (int i = 0 ;i <n; i++)
  55.     {
  56.         unordered_map<long long, int>& m = vx[i];
  57.        
  58.         for (auto& kv : m)
  59.         {
  60.  
  61.             int tmp = 0;
  62.             int ni = i;
  63.             long long li = kv.first;
  64.  
  65.             while (ni >= 0)
  66.             {
  67.                 tmp++;
  68.                 int nni = -1;
  69.                 auto ptr = vx[ni].find(li);
  70.                 if (ptr != vx[ni].end())
  71.                 {
  72.                     nni = ptr->second;
  73.                     ptr->second = -1;
  74.                 }
  75.  
  76.                 ni = nni;
  77.             }
  78.  
  79.             ans = max(ans, tmp);
  80.  
  81.         }
  82.  
  83.     }
  84.  
  85.     cout << ans;
  86.  
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement