连连看的新版(表示没玩过),每个点只能连最近的四个点()栈里的。set 小应用。。
#include<stdio.h>
#include<string.h>
#include<set>
#include<algorithm>
using namespace std;
#define N 1004
set <int> s;
int a[N];
int main()
{
int cnt;
int n;
while(~scanf("%d", &n))
{
for(int i = n; i >= 1; i--)
scanf("%d", &a[i]);
if(n & 1)
{
printf("0\n");
continue;
}
s.clear();
cnt = 0;
bool f = 0;
for(int i = 1; i <= n; i++)
{
if(s.find(a[i]) == s.end())
{
s.insert(a[i]);
cnt++;
if(cnt > 5)
{
f = 1;
break;
}
}
else
{
s.erase(a[i]);
cnt--;
}
}
if(cnt != 0)
f = 1;
if(f)
printf("0\n");
else
printf("1\n");
}
return 0;
}