fork download
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4. int main()
  5. {
  6. ll t;
  7. cin>>t;
  8. while(t--)
  9. {
  10. ll n;
  11. cin>>n;
  12. ll a[n],b[n],count=0,pos=0,flag=0;
  13. for(ll i=0;i<n;i++)
  14. {
  15. b[i]=0;
  16. cin>>a[i];
  17. }
  18. for(ll i=0;i<n;i++)
  19. {
  20. if(a[i]>0)
  21. {
  22. flag++;
  23. if(flag!=1)
  24. {
  25. for(ll k=pos;k<count;k++)
  26. {
  27. b[k]=count-k;
  28. }
  29. pos=count;
  30. flag=1;
  31. }
  32. count++;
  33. }
  34. else
  35. {
  36. flag--;
  37. if(flag!=0)
  38. {
  39. for(ll k=pos;k<count;k++)
  40. {
  41. b[k]=count-k;
  42. }
  43. pos=count;
  44. flag=0;
  45. }
  46. count++;
  47. }
  48. }
  49. for(ll i=pos;i<count;i++)
  50. b[i]=count-i;
  51. for(ll i=0;i<n;i++)
  52. cout<<b[i]<<" ";
  53. cout<<endl;
  54. }
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 15240KB
stdin
1
4
1 2 3 4
stdout
1 1 1 1