Advertisement
tanasaradu

Untitled

Feb 12th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin ("cool.in");
  4. ofstream fout ("cool.out");
  5. int a[1005] , n , k , op , lgmax , nrlgmax;
  6. bitset < 1005 > fr;
  7. inline void OP1()
  8. {
  9. int mx , mn , x;
  10. bool ok = true;
  11. mx = 0;
  12. mn = 1005;
  13. for(int i = 1 ; i <= k ; i++)
  14. {
  15. x = a[i];
  16. mx = max(mx , x);
  17. mn = min(mn , x);
  18. if(fr[x] == 1)
  19. ok = false;
  20. fr[x] = 1;
  21. }
  22. if(ok == true)
  23. fout << fr . count() << "\n";
  24. else if(mx - mn == (k - 1))
  25. fout << mx << "\n";
  26. }
  27. inline void OP2()
  28. {
  29. int mx , mn , x;
  30. bool ok;
  31. for(int i = 1 ; i <= n ; i++)
  32. {
  33. fr . reset();
  34. mx = 0;
  35. mn = 1005;
  36. ok = true;
  37. for(int j = i ; j <= n && ok == true ; j++)
  38. {
  39. x = a[j];
  40. if(fr[x] == 1)
  41. ok = false;
  42. fr[x] = 1;
  43. mx = max(mx , x);
  44. mn = min(mn , x);
  45. if(mx - mn == (j - i) && ok == true)
  46. {
  47. if(lgmax < j - i + 1)
  48. {
  49. lgmax = j - i + 1;
  50. nrlgmax = 1;
  51. }
  52. else if(lgmax == j - i + 1)
  53. nrlgmax++;
  54. }
  55. }
  56. }
  57. fout << lgmax << "\n" << nrlgmax << "\n";
  58. }
  59. int main()
  60. {
  61. fin >> op;
  62. fin >> n >> k;
  63. for(int i = 1 ; i <= n ; i++)
  64. fin >> a[i];
  65. if(op == 1)
  66. OP1();
  67. else
  68. OP2();
  69. fin.close();
  70. fout.close();
  71. return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement