	import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
 
public class Main {
 
	public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	}
 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	}
} import java.util.HashMap; HashMap java.util import java.util.Map; Map java.util import java.util.Scanner; Scanner java.util import java.util.TreeMap; TreeMap java.util public class Main {
 
	public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	}
 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	}
} Main public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	} Main {
		// TODO 自動生成されたコンストラクター・スタブ
	} public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	} main {
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) Map <Integer,Integer> mapP = new HashMap<Integer,Integer> (); mapP new HashMap<Integer,Integer> () Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> (); mapS new TreeMap<Integer,Integer> () int n n p p q q a a b; b int index index counter counter result; result n = sc.nextInt() n sc.nextInt() sc.nextInt sc for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			} index=0; index=0 index 0 index<n index n index++ index++ index {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			} {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			} p = sc.nextInt() p sc.nextInt() sc.nextInt sc mapP.put(index,p) mapP.put mapP index p mapS.put(p,index) mapS.put mapS p index sc.close() sc.close sc result=0 result 0 counter=0 counter 0 for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			} Integer s mapS.keySet() mapS.keySet mapS {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			} {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			} index=mapS.get(s) index mapS.get(s) mapS.get mapS s p=mapP.get(index) p mapP.get(index) mapP.get mapP index if(counter!=index) {
					result++;
				} counter!=index counter index {
					result++;
				} result++ result counter++ counter if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			} result==0 || result==2 result==0 result 0 result==2 result 2 {
				System.out.print("YES");
			} System.out.print("YES") System.out.print System.out System System.out "YES" {
				System.out.print("NO");
			} System.out.print("NO") System.out.print System.out System System.out "NO" String[] args args public class Main {
 
	public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	}
 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	}
} public class Main {
 
	public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	}
 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	}
} Main
	import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
 
public class Main {
 
	public Main() {
		// TODO 自動生成されたコンストラクター・スタブ
	}
 
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Map <Integer,Integer> mapP = new HashMap<Integer,Integer> ();
		Map <Integer,Integer> mapS = new TreeMap<Integer,Integer> ();
			// 整数の入力
			int n,p,q,a,b;
			int index,counter,result;
			n = sc.nextInt();
			for(index=0;index<n;index++) {
				p = sc.nextInt();
				mapP.put(index,p);
				mapS.put(p,index);
			}
			sc.close();
			
			result=0;
			counter=0;
			for(Integer s: mapS.keySet()) {
				index=mapS.get(s);
				p=mapP.get(index);
				if(counter!=index) {
					result++;
				}
				counter++;
			}
			if(result==0 || result==2) {
				System.out.print("YES");
			}
			else {
				System.out.print("NO");
			}
			
 
			// 出力
 
	}
}