
int SVO[NODES];


/* ordered by forward degree (ties broken by backward degree)*/

void ini_heuristic_info()
{
 int i,j,max,var,count;
 int degree[NODES],chosen[NODES];

 for(i=0;i<n;i++){degree[i]=0;chosen[i]=FALSE;}
 for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(there_is_constraint(i,j))
	{degree[i]+=n;degree[j]+=n;}
 count=0;
 for(i=0;i<n;i++)
	{
	max=-1;
	for(j=0;j<n;j++)if(chosen[j]==FALSE && degree[j]>max)
		{max=degree[j];var=j;}
	for(j=0;j<n;j++)if(chosen[j]==FALSE && there_is_constraint(var,j))
		{degree[j]-=(n-1);}
	chosen[var]=TRUE;
        SVO[count++]=var;
	}
}




int selec_var()
{return(SVO[n-num_fut()]);}


void selec_var_inv(int i){}
