fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. Scanner sc=new Scanner(System.in);
  14. int n=sc.nextInt();
  15. int a[]=new int[n];
  16. for(int i=0;i<n;i++)
  17. a[i]=sc.nextInt();
  18.  
  19. //suffix array to maintain max ele after a[j] in range j+1.....n-1
  20. int suffix[]=new int[n];
  21. suffix[n-1]=a[n-1];
  22.  
  23. for(int i=n-2;i>=0;i--)
  24. suffix[i]=Math.max(a[i],suffix[i+1]);
  25.  
  26. /*we dont need prefix array , we can maintain it using variable to see,
  27. the min ele in range 0....j-1
  28. */
  29.  
  30.  
  31. int prefix=a[0];
  32.  
  33. boolean flag=false;
  34. for(int j=1;j<n-1;j++)
  35. {
  36. if(prefix<a[j] && a[j]<suffix[j+1])
  37. {
  38. // System.out.println("true");
  39. flag=true;
  40. break;
  41.  
  42. }
  43. else
  44. //updating prefix to maintain track of min element
  45. prefix=Math.min(prefix,a[j]);
  46. }
  47.  
  48.  
  49.  
  50. if(flag)
  51. System.out.println("true");
  52. else
  53. System.out.println("false");
  54.  
  55.  
  56. }
  57. }
Success #stdin #stdout 0.14s 54452KB
stdin
 6
5 4 3 2 1 8
stdout
false