All pastes #1332129 Raw Edit

vikky

public text v1 · immutable
#1332129 ·published 2009-02-10 01:33 UTC
rendered paste body
#include <stdio.h>#define DEP_DEPTH 5#define NO_TASKS  12int task_plan[DEP_DEPTH][NO_TASKS]={	1,2,3,4,5,6,7,8,9,10,11,12,	0,1,1,1,1,2,6,2,8,8,  9, 7,	0,0,0,0,0,3,0,3,0,0, 10,11,	0,0,0,0,0,4,0,4,0,0,  0, 0,	0,0,0,0,0,5,0,5,0,0,  0, 0};				int next_tasks[NO_TASKS];void get_next_tasks(){	int i,j,k;	int DEPS=0;	k=0;	for(i=0;i<NO_TASKS;i++){		if(task_plan[0][i]){			for(j=1;j<DEP_DEPTH;j++)if(task_plan[j][i])DEPS=1;			if(!DEPS)next_tasks[k++]=task_plan[0][i];			DEPS=0;		}	}	for(;k<NO_TASKS;k++)next_tasks[k]=0;}	void assign_task(int t){	int i,j;	printf("Task %i assigned.\n",t);	for(i=0;i<NO_TASKS;i++){		for(j=1;j<DEP_DEPTH;j++){			if(task_plan[j][i]==t)task_plan[j][i]=0;		}	}	task_plan[0][t-1]=0;}void print_task_plan(){	int i,j;	for(i=0;i<NO_TASKS;i++){		printf("Task %i:",task_plan[0][i]);		for(j=1;j<DEP_DEPTH;j++){			printf(" %i",task_plan[j][i]);		}		printf("\n");	}}void print_next_tasks(){	int k;	printf("Next tasks to issue are: ");	for(k=0;k<NO_TASKS;k++){		if(next_tasks[k])printf("%i ",next_tasks[k]);		else break;	}		if(!next_tasks[0])printf("NONE");	printf("\n");}int main(){	print_task_plan();	get_next_tasks();		print_next_tasks();	get_next_tasks();		print_next_tasks();	assign_task(1);	get_next_tasks();		print_next_tasks();	assign_task(2);	get_next_tasks();		print_next_tasks();	assign_task(4);	get_next_tasks();		print_next_tasks();	assign_task(5);	assign_task(3);	get_next_tasks();		print_next_tasks();	assign_task(8);	get_next_tasks();		print_next_tasks();	assign_task(9);	get_next_tasks();		print_next_tasks();	assign_task(6);	get_next_tasks();		print_next_tasks();	assign_task(7);	assign_task(10);	get_next_tasks();		print_next_tasks();	assign_task(11);	get_next_tasks();		print_next_tasks();	assign_task(12);	get_next_tasks();		print_next_tasks();	return 0;}