Job Sequencing with Deadlines Algorithm

SOURCE CODE:
#include<stdio.h>
int j,n,t;
int check(int s[],int p)
{
int ptr=0,i;
    for(i=0;i<n;i++)
{if(s[i]==p)
    ptr++;
    }         
            if(ptr==0)
            return 1;
            else
            return 0;
        }
int main()
{
printf("Enter # of jobs :\n");
scanf("%d",&n);
int slot[n],p[n],d[n],i;
printf("Enter profits & deadlines : \n");
for(i=0;i<n;i++){
slot[i]=0;
scanf("%d%d",&p[i],&d[i]);
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(p[i]<p[j])
{
t=p[i];p[i]=p[j];p[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}
for(i=0;i<n;i++)
for(j=d[i];j>0;j--){
if(check(slot,j)==1){
slot[i]=j;
break;
}
}
printf("\nPROFIT DEADLINE SLOT\n");
for(i=0;i<n;i++){
if(slot[i]>0)
printf("\n%d %d [%d--%d]",p[i],d[i],slot[i]-1,slot[i]);
else
printf("\n%d %d REJECTED",p[i],d[i]);
}
return 0;

}
OUTPUT:
Enter # of jobs :
5
Enter profits & deadlines :
60 2
100 1
20 3
40 2
20 1

PROFIT  DEADLINE        SLOT

100     1               [0--1]
60      2               [1--2]
40      2               REJECTED
20      3               [2--3]

20      1               REJECTED

Comments