https://www.codechef.com/problems/RAINBOWA (WHAT IS WRONG IN THIS SOLUTION)

#include
using namespace std;
int main()
{
int t;
cin>>t;
while(t!=0)
{
int n,j=0,count=0;
cin>>n;
if (n >= 7 && n <= 100)
{
int a[n],b[100001];
int middle,c=1,pos=0;
for (int i = 0; i < n; ++i)
{
cin>>a[i];
}
for (int i = 0; i < n; ++i)
{
if ( a[i]==1)
{
pos=i;
break;
}
}
for (int i = pos ; i < n/2 + pos ; ++i)
{
if ( a[i]==a[n-i-1] )
{
count ++;
b[j]=a[i];
j++;
continue;
}
}
middle=n/2 + pos ;
b[j]=a[middle];
int temp=0,k=1;
for (int i = 0; i <= j ; ++i)
{
if(b[i]==k)
{
temp++;
k++;
i=0;
}
}
if (temp==7)
cout<<“yes”<<endl;
else if (temp>=0 && temp<7)
cout<<“no”<<endl;
}
t–;
}
return 0;
}

Please either

a) Copy-n-paste your whole code using “Preformatted text” (</>); or
b) Link to your solution. Thanks :slight_smile:

Consider the following testcase:

1
21  
7 1 1 1 2 2 3 4 5 6 7 6 5 4 3 2 2 1 1 1 1

Edit:

And this one:

1
15
1 2 3 4 5 5 6 7 6 5 4 4 3 2 1

Edit2:

Ooh - even better :slight_smile:

1
13
7 6 5 4 3 2 1 2 3 4 5 6 7