fork download
  1. #include <stdio.h>
  2. #include<math.h>
  3. #define M 1000000007
  4. int main()
  5. {
  6. int te;
  7. scanf("%d", &te);
  8. while(te--)
  9. {
  10. int i,j,k;
  11. int n,m;
  12. scanf("%d %d", &n, &m);
  13. int t[m+1],l[m+1],r[m+1];
  14. int a[100005]={0},count[m+1];
  15. for(i=1;i<=m;i++)
  16. {
  17. scanf("%d%d%d",&t[i],&l[i],&r[i]);
  18. count[i]=1;
  19. }
  20. count[m+1]=1;
  21. for(i=m;i>=1;i--)
  22. {
  23. count[i]=a[i]+count[i+1]; // main line is
  24. printf("count[%d]=%d a[%d]=%d count[%d]=%d\n",i,count[i],i,a[i],i+1,count[i+1]);
  25. if(t[i]==2)
  26. {
  27. a[l[i]-1]=a[l[i]-1]-count[i];
  28. a[r[i]]=a[r[i]]+count[i];
  29. }
  30. for(j=1;j<=m;j++)
  31. {
  32. printf("%d ",a[j]);
  33. }printf("\n");
  34. }
  35. for(i=1;i<=n;i++)
  36. {
  37. printf("%d ",count[i]);
  38. }
  39. printf("\n");
  40. }
  41. return 0;
  42. }
Success #stdin #stdout 0s 9696KB
stdin
3
5 5
1 1 2
1 4 5
2 1 2
2 1 3
2 3 4
1 2
1 1 1
1 1 1
10 10
1 1 10
2 1 1
2 1 2
2 1 3
2 1 4
2 1 5
2 1 6
2 1 7
2 1 8
2 1 9
stdout
count[5]=1 a[5]=0 count[6]=1
0 -1 0 1 0 
count[4]=2 a[4]=1 count[5]=1
0 -1 2 1 0 
count[3]=4 a[3]=2 count[4]=2
0 3 2 1 0 
count[2]=7 a[2]=3 count[3]=4
0 3 2 1 0 
count[1]=7 a[1]=0 count[2]=7
0 3 2 1 0 
7 7 4 2 1 
count[2]=1 a[2]=0 count[3]=1
0 0 
count[1]=1 a[1]=0 count[2]=1
0 0 
1 
count[10]=1 a[10]=0 count[11]=1
0 0 0 0 0 0 0 0 1 0 
count[9]=2 a[9]=1 count[10]=1
0 0 0 0 0 0 0 2 1 0 
count[8]=4 a[8]=2 count[9]=2
0 0 0 0 0 0 4 2 1 0 
count[7]=8 a[7]=4 count[8]=4
0 0 0 0 0 8 4 2 1 0 
count[6]=16 a[6]=8 count[7]=8
0 0 0 0 16 8 4 2 1 0 
count[5]=32 a[5]=16 count[6]=16
0 0 0 32 16 8 4 2 1 0 
count[4]=64 a[4]=32 count[5]=32
0 0 64 32 16 8 4 2 1 0 
count[3]=128 a[3]=64 count[4]=64
0 128 64 32 16 8 4 2 1 0 
count[2]=256 a[2]=128 count[3]=128
256 128 64 32 16 8 4 2 1 0 
count[1]=512 a[1]=256 count[2]=256
256 128 64 32 16 8 4 2 1 0 
512 256 128 64 32 16 8 4 2 1