ulvis.paste.net - pastebin

Paste Search Dynamic
Recent pastes
arr
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. long int n,l,t,i,top=-1;
  6. scanf("%ld",&n);
  7. long int arr[n],s[n],st[n],s1[n];
  8. for(i=0;i<=n-1;i++)
  9. scanf("%ld",&arr[i]);
  10.        
  11.  
  12.  
  13.  
  14.  
  15. top++;
  16. s[top]=arr[n-1];
  17. st[top]=n-1;
  18. for(i=n-2;i>=0;i--)
  19. {
  20. t=-1;
  21. l=top;
  22. while(top!=-1)
  23. {
  24. if(s[top]>arr[i])
  25. {
  26. t=top;
  27. s1[st[top]]=i;
  28. }
  29. if(top==0)
  30. break;
  31. else
  32. top--;
  33. }
  34. if(t==-1)
  35. {
  36. l++;
  37. s[l]=arr[i];
  38. st[l]=i;
  39. top=l;
  40. }
  41. else
  42. {
  43. s[t]=arr[i];
  44. st[t]=i;
  45. top=t;
  46. }
  47. }
  48. if(top>=0)
  49. {
  50. for(i=0;i<=top;i++)
  51. s1[st[i]]=-1;
  52. }
  53.  
  54. for(i=0;i<=n-1;i++)
  55. {
  56. if(st[i]==-1)
  57. printf("-1 ");
  58. else
  59. printf("%ld ",arr[s1[i]]);
  60. }
  61. return 0;
  62. }
  63.  
Parsed in 0.009 seconds