tanasaradu

Untitled

Oct 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("cautbin.in");
  4. ofstream fout("cautbin.out");
  5. const int NMAX=100005;
  6. int n,a[NMAX],query;
  7. inline void CB_0(int x)
  8. {
  9. int st=1,dr=n,mij,poz=-1;
  10. while(st<=dr)
  11. {
  12. mij=(st+dr)/2;
  13. if(a[mij]==x)
  14. {
  15. poz=mij;
  16. st=mij+1;
  17. }
  18. else if(a[mij]<x)
  19. st=mij+1;
  20. else dr=mij-1;
  21. }
  22. fout<<poz<<"\n";
  23. }
  24. inline void CB_1(int x)
  25. {
  26. int st=1,dr=n,mij,poz=-1;
  27. while(st<=dr)
  28. {
  29. mij=(st+dr)/2;
  30. if(a[mij]<=x)
  31. {
  32. poz=mij;
  33. st=mij+1;
  34. }
  35. else dr=mij-1;
  36. }
  37. fout<<poz<<"\n";
  38. }
  39. inline void CB_2(int x)
  40. {
  41. int st=1,dr=n,mij,poz=-1;
  42. while(st<=dr)
  43. {
  44. mij=(st+dr)/2;
  45. if(a[mij]>=x)
  46. {
  47. poz=mij;
  48. dr=mij-1;
  49. }
  50. else st=mij+1;
  51. }
  52. fout<<poz<<"\n";
  53. }
  54. int main()
  55. {
  56. fin>>n;
  57. for(int i=1;i<=n;i++)
  58. fin>>a[i];
  59. fin>>query;
  60. while(query--)
  61. {
  62. int op,cer;
  63. fin>>op>>cer;
  64. if(!op)
  65. CB_0(cer);
  66. else
  67. {
  68. if(op==1)
  69. CB_1(cer);
  70. else CB_2(cer);
  71. }
  72. }
  73. fin.close();
  74. fout.close();
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment