Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FairWorkload {
- static int[] carpetas;
- static int trabajadores;
- public int getMostWork(int[] folders, int workers) {
- int res = 0;
- int mayor=0;
- carpetas = folders;
- trabajadores = workers;
- int suma = 0;
- for (int i = 0; i < folders.length; i++){
- suma += folders[i];
- if(folders[i] > mayor)
- mayor = folders[i];
- }
- for (int i = mayor; i <= suma; i++) {
- if (check(i+1)) {
- res = i+1;
- break;
- }
- }
- return res-1;
- }
- public static boolean check(int mayor) {
- int carpeta = 0;
- for (int i = 0; i < trabajadores; i++) {
- int suma = 0;
- while (carpeta < carpetas.length) {
- if (suma + carpetas[carpeta] < mayor) {
- suma += carpetas[carpeta];
- carpeta++;
- } else {
- break;
- }
- }
- }
- if (carpeta < carpetas.length)
- return false;
- return true;
- }
- // BEGIN CUT HERE
- public static void main(String[] args) {
- try {
- eq(0, (new FairWorkload()).getMostWork(new int[] { 10, 20, 30, 40, 50, 60, 70, 80, 90 }, 3), 170);
- eq(1, (new FairWorkload()).getMostWork(new int[] { 10, 20, 30, 40, 50, 60, 70, 80, 90 }, 5), 110);
- eq(2, (new FairWorkload()).getMostWork(new int[] { 568, 712, 412, 231, 241, 393, 865, 287, 128, 457, 238, 98, 980, 23, 782 }, 4), 1785);
- eq(3, (new FairWorkload()).getMostWork(new int[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1000 }, 2), 1000);
- eq(4, (new FairWorkload()).getMostWork(new int[] { 50, 50, 50, 50, 50, 50, 50 }, 2), 200);
- eq(5, (new FairWorkload()).getMostWork(new int[] { 1, 1, 1, 1, 100 }, 5), 100);
- eq(6, (new FairWorkload()).getMostWork(new int[] { 950, 650, 250, 250, 350, 100, 650, 150, 150, 700 }, 6), 950);
- eq(7, (new FairWorkload()).getMostWork(new int[] {669, 331}, 1), 1000);
- } catch (Exception exx) {
- System.err.println(exx);
- exx.printStackTrace(System.err);
- }
- }
- private static void eq(int n, int a, int b) {
- if (a == b)
- System.err.println("Case " + n + " passed.");
- else
- System.err.println("Case " + n + " failed: expected " + b + ", received " + a + ".");
- }
- // END CUT HERE
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement