fork download
  1. #include <cstdio>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int N,D;
  7. scanf(" %d %d",&N,&D);
  8. vector<int> pocty(N,0); // kolko krat som danu bazu videl v mojom podretazci
  9. vector<int> post(D);
  10. int i =0,j =0; // lavy, pravy koniec podretazca
  11. long long odp =0LL;
  12. * int nemam =N; // kolko baz som este nevidel
  13. while(j < D) {
  14. scanf(" %d",&post[j]);
  15. pocty[post[j]-1]++;
  16. * if(pocty[post[j]-1] == 1) nemam--; // tot nova baza na vstupe
  17. j++;
  18. if(nemam > 0) continue; // este nemam od zaciatku po pravy koniec vsetky bazy
  19. while(i < j) {
  20. // posuvaj lavy okraj dalej kym mozes
  21. pocty[post[i]-1]--;
  22. i++;
  23. if(pocty[post[i-1]-1] == 0) {
  24. i--;
  25. pocty[post[i]-1]++;
  26. break;}}
  27. odp +=(long long)(i+1);}
  28. printf("%lld\n",odp); // trololo
  29. return 0;}
  30.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty