fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. cin>>n;
  6. int a[n+1];
  7. for(int i=1;i<=n;i++){
  8. cin>>a[i];
  9. }
  10. int f=0;
  11. deque<int> q;
  12. int u=a[1];
  13. //cout<<u<<endl;
  14. int mx=a[1];
  15. for(int k=1;k<u;k++)q.push_front(k);
  16. for(int i=2;i<=n;i++){
  17. if(a[i]>a[i-1]){
  18. mx = max(mx,a[i-1]);
  19. int j = mx+1;
  20. while(j<a[i]){
  21. q.push_front(j);
  22. j++;
  23. }
  24. }
  25. else{
  26. if(a[i]==q.front()&&!q.empty()){
  27. q.pop_front();
  28. }
  29. else{
  30. f=1;
  31. break;
  32. }
  33. }
  34. }
  35. if(f==1)cout<<"NO\n";
  36. else cout<<"YES\n";
  37.  
  38. }
Runtime error #stdin #stdout 0s 4304KB
stdin
Standard input is empty
stdout
Standard output is empty