Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. package weblab;
  2. import java.io.*;
  3. import java.util.*;
  4.  
  5. class Job{
  6. int startTime;
  7. int endTime;
  8.  
  9. public Job(int startTime, int endTime) {
  10. this.startTime=startTime;
  11. this.endTime=startTime+endTime;
  12. }
  13. }
  14. class Solution {
  15.  
  16. // Implement the solve method to return the answer to the problem posed by the inputstream.
  17. public static String run(InputStream in) {
  18. return new Solution().solve(in);
  19. }
  20.  
  21. public String solve(InputStream in) {
  22. Scanner scanner = new Scanner(in);
  23. int orders = scanner.nextInt();
  24. int noJobs = 0;
  25. List <Job>jobs = new ArrayList();
  26.  
  27.  
  28. while(scanner.hasNext()) {
  29. jobs.add(new Job(scanner.nextInt(),scanner.nextInt()));
  30. }
  31.  
  32.  
  33. while(!jobs.isEmpty()) {
  34. noJobs++;
  35. Job firstDone= jobs.get(0);
  36.  
  37. //get the job that's finished the earliest
  38. int i =0;
  39. for(Job job: jobs) {
  40. if(job.endTime<firstDone.endTime) {
  41. firstDone=jobs.get(i);
  42. }
  43. i++;
  44. }
  45.  
  46. //remove job from available jobs
  47. jobs.remove(firstDone);
  48. if(jobs.size()==0) {
  49. return Integer.toString(noJobs);
  50. }
  51. Job firstReady= jobs.get(0);
  52.  
  53. //List <Job>toBeRemoved = new ArrayList();
  54. remove(jobs,firstDone,firstReady);
  55.  
  56.  
  57.  
  58.  
  59. }
  60. return Integer.toString(noJobs);
  61. }
  62.  
  63. private void remove(List<Job> jobs, Job firstDone, Job firstReady) {
  64. int i =0;
  65. boolean next=false;
  66.  
  67. //finds first available job
  68. for(Job job: jobs) {
  69. if(job.startTime>=firstDone.endTime && job.endTime<firstReady.endTime) {
  70. firstReady=jobs.get(i);
  71. next=true;
  72. }
  73. i++;
  74. }
  75.  
  76. // System.out.println("1");
  77. jobs.remove(firstReady);
  78. // System.out.println("2");
  79. if(next&&jobs.size()!=0) {
  80.  
  81. remove(jobs,firstReady,jobs.get(0));
  82. }
  83.  
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement