import java.util.*;
public class BestFit {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner (System.in);
System.out.print("Enter no of jobs: ");
int jobn=sc.nextInt();
System.out.println("Enter jobs:");
int job[] = new int[jobn];
for (int i = 0; i < jobn; i++) {
job[i] = sc.nextInt();
}
System.out.println("Enter no. of blocks:");
int block = sc.nextInt();
System.out.println("Enter blocks:");
int blocks[] = new int[block];
int totalBlocks = 0;
for (int i = 0; i < block; i++)
{
blocks[i] = sc.nextInt();
totalBlocks += blocks[i];
}
int sumAllocatedJobs = 0;
for (int i = 0; i < jobn; i++) {
int bestIndex = -1;
for (int j = 0; j < block; j++)
{
if (job[i] <= blocks[j]) {
if (bestIndex == -1 || blocks[j] < blocks[bestIndex]) {
bestIndex = j;
}
}
}
if (bestIndex != -1) {
sumAllocatedJobs += job[i];
blocks[bestIndex] -= job[i];
System.out.println(" Job " + job[i] + " allocated to block " + (bestIndex + 1));
} else {
System.out.println(" Job " + job[i] + " cannot be allocated.");
}
}
double avgBest = (double) sumAllocatedJobs / totalBlocks;
System.out.printf("avg_best:- %.2f\\n", avgBest);
}
}
