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;}