fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. typedef long long ll;
  5. const ll MOD = 1e9+7;
  6. const int N = 1e5+10;
  7. struct Seg{
  8. int g,l,r;
  9. };
  10. long long a[N];
  11. long long q[N];
  12. long long exec[N];
  13. Seg seg[N];
  14. int main()
  15. {
  16. ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  17.  
  18. int t;
  19. cin>>t;
  20. while(t--){
  21. for(int i=0;i<N;i++)a[i]=0,q[i]=0,exec[i]=0,seg[i].g=0,seg[i].l=0,seg[i].r=0;
  22. int n,m;
  23. cin>>n>>m;
  24.  
  25. q[m+1]=0;
  26. a[n+1]=0;
  27. for(int i=0;i<=m+1;i++)q[i]=0,exec[i]=0;
  28. for(int i=0;i<=n+1;i++)a[i]=0;
  29. for(int i=1;i<=m;i++){
  30. cin>>seg[i].g>>seg[i].l>>seg[i].r;
  31. }
  32. for(int i=m;i>=1;i--){
  33. q[i]+=q[i+1];
  34. exec[i]+=1+q[i];
  35. if(seg[i].g==2){
  36. q[seg[i].r]+=q[i]+1;
  37. q[seg[i].l-1]-=(q[i]+1);
  38. }
  39. }
  40. for(int i=m;i>=1;i--){
  41.  
  42. if(seg[i].g==1){
  43. a[seg[i].l]+=exec[i];
  44. a[seg[i].r+1]-=exec[i];
  45. }
  46. }
  47.  
  48. for(int i=1;i<=n;i++){
  49. a[i]+=a[i-1];
  50. if(a[i]>MOD)a[i]%=MOD;
  51. if(a[i]<-MOD){
  52. a[i]%=MOD;
  53. }
  54. }
  55. for(int i=1;i<=n;i++)if(a[i]>=0)cout<<(a[i]+MOD)%MOD<<" ";
  56. cout<<"\n";
  57.  
  58. }
  59.  
  60.  
  61.  
  62.  
  63. return 0;
  64. }
  65.  
Runtime error #stdin #stdout 0s 19584KB
stdin
Standard input is empty
stdout
Standard output is empty