Advertisement
Guest User

Untitled

a guest
Dec 17th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <cmath>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. typedef vector<int> vi;
  9.  
  10. int main(int argc, char **argv)
  11. {
  12. int casos; cin >> casos;
  13. while(casos--)
  14. {
  15. int n; cin >> n;
  16. int original = n;
  17. vi numeros;
  18. while(n--)
  19. {
  20. int sgte; cin >> sgte;
  21. numeros.push_back(sgte);
  22. }
  23. int maxglobal = 0;
  24. int inicio = 0;
  25. while(1)
  26. {
  27. map<int, int> indices;
  28. int maxlocal = 0;
  29. bool saliconbreak = false;
  30.  
  31. for(int i = inicio; i < original; i++)
  32. {
  33. int actual = numeros[i];
  34. if(!indices.count(actual))
  35. {
  36. indices[actual] = i;
  37. maxlocal++;
  38. }
  39. else
  40. {
  41. maxglobal = max(maxlocal, maxglobal);
  42. inicio = indices[actual] + 1;
  43. saliconbreak = true;
  44. break;
  45. }
  46. }
  47. if(!saliconbreak)
  48. {
  49. maxglobal = max(maxlocal, maxglobal);
  50. break;
  51. }
  52. }
  53. cout << maxglobal << endl;
  54. }
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement