题意:顶上的数字只能和他最近的5个元素相连,然后消掉。。再继续连,,,问能否把它全部消掉;;;;;
思路:贪心能过。。。。。。。。。。。。。。。。。。。
给一组数据:
10
1 1 2 3 3 3 1 3 1 2
答案应该是 :1
贪心的话:答案是0 也能过。。也许是我度错题了!!!!
刚听说贪心也能过,改了一下交了,A了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
const int N =1009;
int re[N];
int main()
{
freopen("in.txt","r",stdin);
int n;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
{
scanf("%d",&re[i]);
}
if(n%2==1)
{
printf("0\n");
continue;
}
bool fin = false;
//for(int i=0;i<9;i++) re[n+i] = 0;
for(int i=0;i<n;i++)
if(re[i]>=0)
{
int t=-1;
for(int j=1,k=0;j<7&&i+j+k<n;)
{
//cout<<j<<endl;
if(re[i]==re[i+j+k])
{
t=i+j+k;
break;
}
if(re[i+j+k]>=0) j++;
else k++;
}
if(t==-1)
{
fin = true;
break;
}
re[t]=re[i] = -1;
}
// for(int i=0;i<n;i++) cout<<re[i]<<" ";cout<<endl;
for(int i=0;i<n;i++)
if(re[i]>=0) fin = true;
if(fin){
printf("0\n");
}else{
printf("1\n");
}
}
return 0;
}