fork download
  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4. int a[100005],x[100005];
  5. int bs(int b,int e,int i)
  6. {
  7. int m=(b+e)/2;
  8. while(b!=m)
  9. {
  10. if(x[m]<=a[i])
  11. b=m;
  12. else
  13.  
  14. e=m;
  15. m=(b+e)/2;
  16. }
  17. return e;
  18. }
  19. int main()
  20. {
  21. int i,j,n,l=1;
  22. cin>>n;
  23. for(i=1;i<=n;i++)
  24. cin>>a[i];
  25. x[1]=a[1];
  26. for(i=2;i<=n;i++)
  27. {
  28. if(a[i]<x[1])
  29. x[1]=a[i];
  30. else if(a[i]>x[l])
  31. x[++l]=a[i];
  32. else
  33. x[bs(0,l,i)]=a[i];
  34. }
  35. reverse(a+1,a+n+1);
  36. int l1=1;
  37. x[1]=a[1];
  38. for(i=2;i<=n;i++)
  39. {
  40. if(a[i]<x[1])
  41. x[1]=a[i];
  42. else if(a[i]>x[l1])
  43. x[++l1]=a[i];
  44. else
  45. x[bs(0,l1,i)]=a[i];
  46. }
  47. if(l>l1)
  48. cout<<"Ajeyaa\n"<<n-l;
  49. else if(l<l1)
  50. cout<<"Sriram\n"<<n-l1;
  51. else
  52. cout<<"Both\n"<<n-l;
  53. return 0;
  54. }
Success #stdin #stdout 0s 4544KB
stdin
1
1
stdout
Both
0