fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5.  
  6. int n;
  7. int m;
  8. int q,a,b;
  9. long int arr[100050];
  10. int bit[100050];
  11. int result[100050];
  12. int c(int i){
  13. int sum=0;
  14. while(i>0){
  15. sum+=bit[i];
  16. i=i-(i&-i);
  17. }
  18. return sum;
  19. }
  20. void add(int i,int v){
  21. while(i<n+2){
  22. bit[i]+=v;
  23. i=i+(i&-i);
  24. }
  25. }
  26. int get(int i){
  27. return c(i)-c(i-1);
  28. }
  29.  
  30. void print(){
  31. for(int i=1;i<n+1;i++){
  32. result[bit[i]]=i;
  33. }
  34. for(int i=1;i<n+1;i++){
  35. printf("%d ",get(i));
  36. }
  37. printf("\n");
  38. }
  39. int main() {
  40. scanf("%d %d",&n,&m);
  41. for(int i=0;i<n;i++){
  42. scanf("%ld",&arr[i]);
  43. }
  44. printf("one\n");
  45. for(int i=0;i<n+1;i++){
  46. add(i,1);
  47. printf("%d \n",i);
  48. }
  49. for(int i=0;i<m;i++){
  50. scanf("%d %d %d",&q,&a,&b);
  51. if(q==1){
  52. if(a==1)
  53. continue;
  54. print();
  55. add(a,-(a-1));
  56. add(b+1,(a-1));
  57. add(1,(b-a+1));
  58. add(a,-(b-a+1));
  59. print();
  60. //add(a,-(b-a+1);
  61. }else {
  62. if(b==n)
  63. continue;
  64. }
  65. }
  66. return 0;
  67. }
  68.  
Time limit exceeded #stdin #stdout 5s 16784KB
stdin
8 4
1 2 3 4 5 6 7 8
1 2 4
2 3 5
1 4 7
2 1 4
stdout
Standard output is empty