fork download
  1. import math
  2. def ip():
  3. return map(int,input().split())
  4.  
  5. T=int(input())
  6. # T=1
  7. for __ in range(T):
  8. n=int(input())
  9. s=str(input())
  10. dic={}
  11. d=0
  12. k=0
  13. ans=[]
  14. for i in range(n):
  15. if s[i]=="D":
  16. d+=1
  17. elif s[i]=="K":
  18. k+=1
  19.  
  20.  
  21. if k == 0:
  22.  
  23. gd, gk = 1, 0
  24. elif d == 0:
  25.  
  26. gd, gk = 0, 1
  27. else:
  28. hc = math.gcd(d, k)
  29. gd = d // hc
  30. gk = k // hc
  31.  
  32. key = (gd, gk)
  33. dic[key] = dic.get(key, 0) + 1
  34. ans.append(dic[key])
  35.  
  36. print(*ans)
  37.  
  38.  
  39.  
  40.  
Success #stdin #stdout 0.12s 14276KB
stdin
5
3
DDK
6
DDDDDD
4
DKDK
1
D
9
DKDKDDDDK
stdout
1 2 1
1 2 3 4 5 6
1 1 1 2
1
1 1 1 2 1 2 1 1 3