even though i am getting a correct output in the program http://www.spoj.com/problems/POLYNOM/ ,SPOJ is teliing me that its WA.So,whats's the error in my program?
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{ int N;
cin>>N;
bool flg=false;
int i,j,k;
int d3,d2,d1,d0,f;
for(i=1;i<=N;i++)
{int n;
cin>>n;
if(n<1||n>500)
{exit(0);}
int arr[501];
for(j=0;j<n;j++)
cin>>arr[j];
for(d3=-50;d3<=50;d3++)
{for(d2=-50;d2<=50;d2++)
{for(d1=-50;d1<=50;d1++)
{for(d0=-100;d0<=100;d0++)
{for(k=1;k<=n;k++)
{f=(d3*k*k*k)+(d2*k*k)+(d1*k)+(d0);
if(f==arr[k-1])
flg=true;
else
{ flg=false;
break;}}
if(flg==true)
{
break;}}if(flg==true)
{break;}}if(flg==true)
{break;}}if(flg==true)
{break;}}if(flg==true)
{cout<<"YES";}
else
{cout<<"NO";}
arr[501]=NULL;
n=NULL;
}return 0;}