Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <string>
  5. #include <sstream>
  6. #include <set>
  7. #include <cmath>
  8. #include <bitset>
  9. #include <iomanip>
  10. #include <queue>
  11. #include <stack>
  12. #include <unordered_map>
  13. #include <map>
  14. #include <cstdio>
  15.  
  16. #define mp make_pair
  17. #define pb push_back
  18. #define all(x) x.begin(), x.end()
  19.  
  20.  
  21. typedef long long ll;
  22. typedef unsigned long long ull;
  23.  
  24. using namespace std;
  25. signed main() {
  26. int q;
  27. cin >> q;
  28. while (q--) {
  29. int n;
  30. cin >> n;
  31. vector<int> v(n);
  32. for (auto& x : v) {
  33. cin >> x;
  34. }
  35. vector<pair<map<int, int>, map<int, int>>> mass(n);
  36. for (int i = 0; i < n; ++i) {
  37. for (int j = 0; j < n; j++) {
  38. if (i == j) continue;
  39. if(j < i)mass[i].first[v[i] - v[j]]++;
  40. if(j > i)mass[i].second[v[j] - v[i]]++;
  41. }
  42. }
  43. long long ans = 0;
  44. for (int i = 0; i < n; ++i) {
  45. long long cur_ans = 0;
  46. for (map<int, int>::iterator it = mass[i].first.begin(); it != mass[i].first.end(); ++it) {
  47. int k = it->first;
  48. if (mass[i].second.count(k) == 0) continue;
  49. cur_ans += (it->second * mass[i].second[k]);
  50. }
  51. ans += (cur_ans);
  52. }
  53. cout << ans << '\n';
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement