Job Sequencing (Java)
Wed Nov 06 2024 10:40:28 GMT+0000 (Coordinated Universal Time)
Saved by
@signup1
import java.util.*;
public class JobSequencing {
private static void calculateMaxProfit(Job[] ar,int md) {
Arrays.sort(ar,(Job a,Job b)->{
return b.profit-a.profit;
});
int profit=0;
for(Job j:ar){
System.out.println(j.deadline+";"+j.profit+";"+j.id);
}
System.out.println();
char js[]=new char[md];
boolean []slot=new boolean[md];
for(int i=0;i<ar.length;i++){
for(int j=Math.min(md-1,ar[i].deadline-1);j>=0;j--){
if(slot[j]==false){
slot[j]=true;
profit+=ar[i].profit;
js[j]=ar[i].id;
break;
}
}
}
System.out.println("max profit is :"+profit);
System.out.println("job sequence");
for(char c:js){
System.out.print(c+" ");;
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("enter no of jobs:");
int n=sc.nextInt();
Job [] ar=new Job[n];
char c='a';
int md=0;
for(int i=0;i<n;i++){
System.out.println("enter deadline for job :"+(i+1));;
int d=sc.nextInt();
md=Math.max(d,md);
System.out.println("enter profit for job :"+(i+1));;
int p=sc.nextInt();
Job j=new Job(c, d, p);
c=(char)(c+1);
ar[i]=j;
}
calculateMaxProfit(ar,md);
}
}
public class Job {
char id;
int deadline;
int profit;
public Job(char id, int deadline, int profit) {
this.id = id;
this.deadline = deadline;
this.profit = profit;
}
}
content_copyCOPY
Comments