@[2345A](/user/565070)
```cpp
//my code
#include<iostream>
using namespace std;
int n,arr[100000],loction[100000];
int main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n;
for(int i=0;i<n;++i) {
cin>>arr[i];
if(arr[i]>n||loction[arr[i]-1]) {
cout<<"NO";
return 0;
}else loction[arr[i]-1]=i+1;
}
for(int i=1;i<=n;++i)
if(arr[i-1]!=loction[i-1]) {
cout<<"NO";
return 0;
}
cout<<"YES";
return 0;
}
```
by xiangzhenze611 @ 2024-04-19 21:06:35
@[2345A](/user/565070) unordered_map你值得拥有。
by fishredflying @ 2024-04-19 21:06:48
@[xiangzhenze611](/user/1005749) @[fishredflying](/user/1029122)
谢谢
by 2345A @ 2024-04-19 21:08:16
F 首A:
```cpp
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=114514,M=1919810;
ll n,m,k,x,a[N];
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>>n;
for(int i=1;i<=n;++i) cin>>a[i];
bool fl=0;
for(int i=1;i<=n;++i)
if(a[a[i]]!=i) fl=1;
if(fl) cout<<"NO";
else cout<<"YES";
return 0;
}
```
by The_Elation_Aha @ 2024-04-19 21:08:21
@[2345A](/user/565070) set 你值得拥有。
by 2c_s @ 2024-04-19 21:08:46
吾码
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,a[100050],p[100050];
int main(){
scanf("%d",&n);
for (int i = 1; i <= n; i++) scanf("%d",&a[i]);
for (int i = 1; i <= n; i++) p[a[i]] = i;
for (int i = 1; i <= n; i++) {
if (a[i] != p[i]) {
printf("NO");
return 0;
}
}
printf("YES");
return 0;
}
```
by liuruiqing @ 2024-04-19 21:15:31
@2453A 题目最后一行不是说了:"数据保证
a 是一个排列。"吗?所以你的这个部分
```cpp
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[j]==a[i]&&i!=j)
{
cout<<"NO\n";
return 0;
}
}
}
```
建议删除。
\
除此之外如果还WA了,我的AC代码供参考:
```cpp
#include<bits/stdc++.h>
using namespace std;
long long a[100005],vis[100005];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i],vis[a[i]]=i;
for(int i=1;i<=n;i++){
if(a[i]!=vis[i]){
cout<<"NO";
return 0;
}
}
cout<<"YES";
return 0;
}
```
by zengyuqiao @ 2024-04-19 21:46:59
我是蒟蒻,"@"符号没用好,希望大佬们谅解
by zengyuqiao @ 2024-04-19 21:48:27
```cpp
#include<iostream>
#include<cstring>
//#define int long long
using namespace std;
signed main(){
int n,a[100010],b[100010];
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
b[a[i]]=i;
}
for(int i=1;i<=n;i++){
if(b[i]==0){
cout<<"NO";
return 0;
}
if(b[i]!=a[i]){
cout<<"NO";
return 0;
}
}
cout<<"YES";
}
```
by yu1128 @ 2024-04-19 22:49:31