fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ms(s,n) memset(s,n,sizeof(s))
  5. #define all(a) a.begin(),a.end()
  6. #define present(t, x) (t.find(x) != t.end())
  7. #define sz(a) int((a).size())
  8. #define FOR(i, a, b) for (int i = (a); i < (b); ++i)
  9. #define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
  10. #define pb push_back
  11. #define pf push_front
  12. #define fi first
  13. #define se second
  14. #define mp make_pair
  15.  
  16. typedef long long ll;
  17. typedef unsigned long long ull;
  18. typedef long double ld;
  19. typedef pair<int,int> pi;
  20. typedef vector<int> vi;
  21. typedef vector<pi> vii;
  22.  
  23. const int MOD = (int) 1e9+7;
  24. const int INF = (int) 1e9+1;
  25. inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
  26. inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
  27.  
  28.  
  29. void FileIO(){
  30. freopen("input.txt","r", stdin);
  31. freopen("output.txt","w",stdout);
  32. }
  33.  
  34. void check(){
  35. int n;cin>>n;
  36. int a[n];
  37. FOR(i,0,n) cin>>a[i];
  38. int l=-1,r=n;
  39. for(int i=0;i<n-1;i++){
  40. if(a[i]>a[i+1]){
  41. l=i;break;
  42. }
  43. }
  44. if(l==-1){
  45. cout<<"yes\n1 1";return;
  46. }
  47. for(int i=n-1;i>0;i--){
  48. if(a[i]<a[i-1]){
  49. r=i;break;
  50. }
  51. }
  52. int x=l,y=r;
  53. while(l<r){
  54. swap(a[l++],a[r--]);
  55. }
  56. for(int i=0;i<n-1;i++){
  57. if(a[i]>a[i+1]){
  58. cout<<"no\n";return;
  59. }
  60. }
  61. cout<<"yes\n";
  62. cout<<x+1<<" "<<y+1;
  63. }
  64. int main(){
  65. //FileIO();
  66. ios::sync_with_stdio(false);
  67. cin.tie(nullptr);
  68. cout.tie(nullptr);
  69. check();
  70. }
Success #stdin #stdout 0.01s 5392KB
stdin
Standard input is empty
stdout
yes
1 1