fork(3) download
  1. #include<stdio.h>
  2. #define gc getchar_unlocked
  3. #include <string.h>
  4. #define test int t;t=sscan();while(t--)
  5. inline int sscan()
  6. {
  7. int n=0;
  8. int ch=gc();
  9. while(ch<'0'||ch>'9')
  10. ch=gc();
  11. while(ch>='0'&&ch<='9')
  12. {
  13. n=(n<<3)+(n<<1)+ch-'0';
  14. ch=gc();
  15. }
  16. return n;
  17. }
  18.  
  19. int main()
  20. {
  21.  
  22. int top;
  23. top=sscan();
  24.  
  25. int stack[1010],queue[1010];
  26. int i,j;
  27.  
  28. for(i=0;i<top;i++)
  29. {
  30. stack[i]=sscan();
  31. }
  32.  
  33. int dump=sscan();
  34. int qind=-1,k=0,flag=1;
  35.  
  36. for(i=1;i<top+1;i++)
  37. {
  38. for(j=k;j<top;j++)
  39. {
  40.  
  41. if(stack[j]==i)
  42. {
  43. stack[j]=0;
  44. j++;
  45. k=j;
  46. break;
  47. }
  48.  
  49. else if(queue[qind]==i)
  50. {
  51.  
  52. queue[qind]=0;
  53. qind--;
  54. break;
  55. }
  56. else
  57. {
  58. queue[++qind]=stack[j];
  59.  
  60. if(qind>=1)
  61. {
  62. if(queue[qind]>queue[qind-1])
  63. flag=2;
  64. }
  65.  
  66. }
  67. if(flag==2)
  68. break;
  69. }
  70. if(flag==2)
  71. break;
  72. if(j>=top)
  73. break;
  74. }
  75.  
  76. if(flag==2)
  77. printf("no\n");
  78. else
  79. printf("yes\n");
  80.  
  81. return 0;
  82. }
  83.  
Success #stdin #stdout 0s 2252KB
stdin
5
5 1 2 4 3 
0
stdout
yes