fork(2) download
  1. #include "iostream"
  2. #include<stdio.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. unsigned int i,n,o,c,dep,pos_d,pos_m,last_pos,max, act;
  8. //char* arr,*rn;
  9. //cin>>n;
  10. scanf( "%d", &n );
  11. //fflush(stdin);
  12. //arr = new char[2*n];
  13. //arr = new char[2*n + 10]; // +10 just in case
  14. //rn = fgets(arr, (2*n), stdin);
  15. //scanf( "%s", &arr );
  16. c=o=dep=pos_d=pos_m=last_pos=max=0;
  17. for(i=0; i < n; i++)
  18. {
  19. //if(arr[i]==' ')
  20. // continue;
  21. scanf( "%d", &act );
  22. if(act==1)
  23. {
  24. o++;
  25. if(c>0)
  26. c--;
  27. else
  28. {
  29. dep++;
  30. pos_d = (i/2)+1;
  31. }
  32. }
  33.  
  34. else if(act==2)
  35. {
  36. c++;
  37. if(o>0)
  38. o--;
  39. if(o==0)
  40. {
  41. if(((i-last_pos+2)/2)>max)
  42. {
  43. max=(i-last_pos+2)/2;
  44. pos_m = 1+(last_pos+1)/2;
  45. }
  46. last_pos = i+1;
  47. }
  48. }
  49. }
  50. cout<<dep<<" "<<pos_d<<" "<<max<<" "<<pos_m;
  51. return 0;
  52. }
Success #stdin #stdout 0.01s 2684KB
stdin
20
1 2 1 1 2 2 1 2 1 1 2 1 2 2 1 1 2 1 2 2
stdout
2 2 3 5