Example #1
0
extern int tuple_cmp(Tuple *l, Tuple *r, int lpos[], int rpos[], int len)
{
    int res = 0;
    for (int i = 0; i < len && !res; ++i)
        res = val_cmp(tuple_attr(l, lpos[i]), tuple_attr(r, rpos[i]));

    return res;
}
Example #2
0
void testcases()
{
	struct node *res;
	char *ip;
	int i,check;
	float res1;
	for(i=0;i<10;i++)
	{
		res=NULL;
		ip=NULL;
		ip=malloc_str(testDB[i].input);
		
		ip=valid_str(ip);
		if(ip!=NULL)
		{
			ip=rem_space(ip);
			res=create_list(ip);
			res=mergesort(res);
			res1=get_median(res);
		}
		else
		{
			res1=0;
		}
			
		check=val_cmp(res1,testDB[i].value);
		//printf("%f\t%f\n",res1,testDB[i].value);
		
		if(check==0)
			printf("passed\n");
		else 
			printf("failed\n");
		
		free(ip);
		free(res);
		

	}

}
Example #3
0
void playTube(int *narray, int n, int *ngoal, int *earray[2], int e, int *way[3])
{
    int i;
    int k = 0;
    int elen = e;
    int nlen = n;
    int *nminus = (int *) malloc (nlen);
    
        way[0] = (int *) malloc (2 * n * n);
    way[1] = (int *) malloc (2 * n * n);
    way[2] = (int *) malloc (2 * n * n);

    for(i = 0; i < nlen; i++)
        {
        nminus[i] = narray[i] - ngoal[i];
    }
    
    int *lowtubecnt = (int *) malloc (nlen);
    int low = 0;
    
        for(i = 0; i < nlen; i++) lowtubecnt[i] = 0;

        for(i = 0; i < elen; i++)
        {
        lowtubecnt[earray[0][i] - 1]++;
        lowtubecnt[earray[1][i] - 1]++;
    }
    
        for(i = 1; i < nlen; i++)
        {
        if(lowtubecnt[low] > lowtubecnt[i]) low = i;
    }
    
    while(true)
        {
        int goin = 0xff;
        int golow = 0;
        for(i = 0; i < elen; i++)
                {
            if(earray[0][i] - 1 == low)
                        {
                if(goin > nminus[earray[1][i] - 1])
                                {
                    golow = earray[1][i] - 1;
                    goin = nminus[golow];
                }
            }
        }

        int minus;

                minus = abs(nminus[low]) < abs(nminus[golow]) ? nminus[golow] : nminus[low];

                way[0][k] = nminus[low] > nminus[golow] ? low : golow;
        way[1][k] = nminus[low] > nminus[golow] ? golow : low;
        way[2][k] = abs(minus);

                narray[way[0][k]] -= way[2][k];
                narray[way[1][k]] += way[2][k];

        k++;

                if (val_cmp(narray, ngoal, nlen)) break;

                low = golow;
    }
    
    free(lowtubecnt);
    free(nminus);
    
    global_k = k;
}