sacgajcvs

Untitled

Oct 24th, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. int bestTrio(int n, vector<int> ta, vector<int> tb) {
  2. vector<int> a[n + 1];
  3. for(int i = 0; i < ta.size(); i++) {
  4. a[ta[i]].push_back(tb[i]);
  5. a[tb[i]].push_back(ta[i]);
  6. }
  7. for(int i = 1; i <= n; i++) {
  8. sort(a[i].begin(), a[i].end());
  9. }
  10. int mn = 4 * n;
  11. int l = 0,r = 0;
  12. auto fun = [&] (int p1, int p2, int p3) {
  13. mn = min(mn, (int)a[p1].size() + (int)a[p2].size() + (int)a[p3].size() - 6);
  14. };
  15. for(int i = 1; i <= n; i++) {
  16. for(auto j : a[i]) {
  17. l = 0, r = 0;
  18. while(l < a[i].size() && r < a[j].size()) {
  19. if(a[i][l] < a[j][r]) {
  20. l++;
  21. } else if(a[i][l] > a[j][r]) {
  22. r++;
  23. } else {
  24. fun(i, j, a[i][l]);
  25. l++;
  26. r++;
  27. }
  28. }
  29. }
  30. }
  31. return (mn == 4 * n ? -1 : mn);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment