用map做的,不会解决重复的问题,开数组肯定会MLE。
#include <bits/stdc++.h>
using namespace std;
struct node{
int val;
bool flag;
};
map<int,int> mp;
int main()
{
int n,cnt=0;
scanf("%d",&n);
node a[1+n];
for (int i=1;i<=n;i++)
{
scanf("%d",&a[i].val);
int x=a[i].val;
mp[x]++;
a[i].flag=0;
if(mp[a[i].val]==3)
{
printf("-1\n");
return 0;
}
}
for (int i=1;i<=n;i++)
{
if(mp[a[i].val]==2&&a[i].flag==0)
{
cnt++;
a[i].flag=1;
cout<<"a[i]:"<<a[i].val<<' '<<mp[a[i].val]<<endl;
}
}
printf("cnt:%d\n",cnt);
return 0;
}
因为这个人是个蒟蒻,所以连红题都不会做。