B. Sort the Array1300 / 排序
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Sort the Array1300 / 排序相关的知识,希望对你有一定的参考价值。
https://codeforces.com/problemset/problem/451/B
如果本身直接有序的话,那么直接输出yes 选 1 1
即可。
否则的话我们只能选一段逆序的,将其转换看可不可以,如果还不可以就输出no,否则输出yes。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int main(void)
{
int n; cin>>n;
vector<int>a(n+1),b(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
b=a;
sort(b.begin(),b.end());
if(a==b)
{
puts("yes");
cout<<"1 1";
return 0;
}
for(int i=1;i<=n;i++)
{
if(i+1<=n&&a[i]>a[i+1])
{
int j=i;
while(j<n&&a[j]>a[j+1]) j++;
sort(a.begin()+i,a.begin()+i+j-i+1);
if(a==b)
{
puts("yes");
cout<<i<<" "<<j<<endl;
return 0;
}else break;
}
}
puts("no");
return 0;
}
以上是关于B. Sort the Array1300 / 排序的主要内容,如果未能解决你的问题,请参考以下文章
588 div2 B. Expansion coefficient of the array