fork(2) download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define mod 1000000007
  5. #define max_char 128
  6. #define pb push_back
  7. #define ff first
  8. #define ss second
  9. #define mp make_pair
  10. #define lbd lower_bound
  11. #define ubd upper_bound
  12. #define PI 3.141592653589793238
  13. #define pf push_front
  14. #define all(x) x.begin(),x.end()
  15. #define input(arr,n) for(ll c1=0;c1<n;c1++)cin>>arr[c1];
  16. #define rep(i,a,n) for( ll i=a ; i<n ; i++)
  17. #define mems(x, y) memset(x, y, sizeof(x))
  18. #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  19. using namespace std;
  20. //cout<<"Case #"<<v1+1<<": ";
  21.  
  22. ll power(ll base,ll pow, ll mo)
  23. {
  24. ll res=1;
  25. while(pow)
  26. {
  27. if (pow%2!=0) res=(res*base)%mo;
  28. base=(base*base)%mo;
  29. pow/=2;
  30. }
  31. return res;
  32. }
  33.  
  34.  
  35. int main()
  36. {
  37. fastio
  38. ll t,i,j,x;
  39. cin>>t;
  40. while(t--)
  41. {
  42. int n,k;
  43. cin>>n;
  44. vector<int>a(n);
  45.  
  46. for(i=0;i<n;i++)
  47. cin>>a[i];
  48.  
  49. vector<pair<ll,ll>>v;
  50. for(i=0;i<n;i++)
  51. {
  52. v.pb(mp(a[i],i));
  53. }
  54. sort(all(v));
  55. int f=1;
  56.  
  57. int end=n-1;
  58. int pos;
  59. int vv=0;
  60. for(i=0;i<n;i++)
  61. {
  62. pos=v[i].ss;
  63. //cout<<pos<<" ";
  64. if(vv==0&&pos==end)
  65. {
  66. --end;
  67. vv=1;
  68. }
  69. else if(pos==end && end-v[i-1].ss==-1)
  70. {
  71. //cout<<"A";
  72. f=0;
  73. break;
  74. }
  75. else if(pos!=0 && vv==0 && a[pos]-a[pos-1]!=1)
  76. {
  77. f=0;
  78. //cout<<i<<" ";
  79. break;
  80. }
  81.  
  82. else{
  83. vv=0;
  84. }
  85. }
  86.  
  87. if(f)
  88. cout<<"Yes";
  89. else cout<<"No";
  90. cout<<"\n";
  91. }
  92. return 0;
  93. }
Success #stdin #stdout 0s 4284KB
stdin
3
4
1 2 3 4
3
2 3 1
5 
5 1 4 3 2
stdout
Yes
Yes
No