Advertisement
Guest User

Untitled

a guest
Oct 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6. int main()
  7. { int n,c,x,m,a,b,t,l,r;
  8. cin>>n;
  9. vector <int> viz_k;
  10. vector <int> viz;
  11. for (int i = 0; i < n; i++){
  12. cin>>c>>x;
  13. if (x==0)
  14. viz.push_back(c);
  15. else
  16. viz_k.push_back(c);
  17. }
  18. cin>>m;
  19.  
  20. sort(viz.begin(),viz.end());
  21. sort(viz_k.begin(),viz_k.end());
  22. for (int i = 0; i < m; i++ ){
  23. cin>>a>>b;
  24. int res = 0;
  25. if (b==1){
  26. l = 0;
  27. r = viz_k.size()-1;
  28. t =1;
  29. if (viz_k[l]>a)
  30. cout<<viz_k.size();
  31. else{
  32. while (r - l > 1){
  33.  
  34. t = (l+r)/2;
  35. if (viz_k[t] > a )
  36. r = t;
  37. else
  38. l = t;
  39. }
  40. if (viz_k[l+1]<=a)
  41. cout<<0;
  42. else
  43. cout<<(viz_k.size()-l-1)<<endl;
  44. }
  45. }
  46.  
  47. else{
  48. cout<<"ji";
  49. l = 0;
  50. r = viz_k.size()-1;
  51. t =1;
  52. res =0;
  53. cout<<"ji";
  54. if (viz_k[l]>=a){
  55. res+=viz_k.size();
  56. cout<<"ji";
  57. }
  58.  
  59. else{
  60. while (r - l > 1){
  61.  
  62. t = (l+r)/2;
  63. if (viz_k[t] >= a )
  64. r = t;
  65. else
  66. l = t;
  67. }
  68. cout<<"ji";
  69. if (viz_k[l+1]<a)
  70. res+=0;
  71. else
  72. res+=(viz_k.size()-l-1);
  73. }
  74. cout<<"ji";
  75. l = 0;
  76. r = viz.size()-1;
  77. t =1;
  78. res =0;
  79. if (viz_k[l]>=a)
  80. res+=viz.size();
  81. else{
  82. while (r - l > 1){
  83.  
  84. t = (l+r)/2;
  85. if (viz[t] >= a )
  86. r = t;
  87. else
  88. l = t;
  89. }
  90. if (viz[l+1]<a)
  91. res+=0;
  92. else
  93. res+=(viz.size()-l-1);
  94. }
  95. cout<<res;
  96. }
  97.  
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement