#include #include #include using namespace std; int main(){ int n;cin>>n; vector A(n); for(int i = 0; n > i; i++)cin>>A[i],A[i]--; vector B(n); vectorret; for(int i = 0; n > i; i++){ if(B[i])continue; int nw = i; int c = 0; while(!B[nw]){ B[nw] = true; nw = A[nw]; c++; } if(c%2 == 0)ret.push_back(c); } sort(ret.begin(),ret.end(),greater()); for(int i = 0; ret.size() > i; i+=2){ if(i+1 == ret.size()){ if(ret[i] != 1){ cout << "No" << endl; return 0; } }else if(ret[i]-ret[i+1] > 1){ cout << "No" << endl; return 0; } } cout << "Yes" << endl; }