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

}

image.png