0
点赞
收藏
分享

微信扫一扫

【NOIP模拟】排序


Description

【NOIP模拟】排序_排序

Solution

这种题简直是,普及组小朋友随便过的题目。
直交换两个数,那么很明显只用排一次序之后两两的比对,如果不同的个数=2那么就输出YES否则就输出NO。

Code

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
int i,j,k,l,t,n,m,ans;
int a[100007],b[100007];
int main(){
scanf("%d",&n);
fo(i,1,n)scanf("%d",&a[i]),b[i]=a[i];
sort(a+1,a+1+n);
fo(i,1,n){
if(a[i]!=b[i])t++;
}
if(t>2)printf("NO\n");
else printf("YES\n");
}


举报

相关推荐

0 条评论