Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. static class Job implements Comparable<Job> {
  2. long a;
  3. long b;
  4. int index;
  5.  
  6. public Job(long a, long b, int index) {
  7. this.a = a;
  8. this.b = b;
  9. this.index = index;
  10. }
  11.  
  12. @Override
  13. public int compareTo(Job that) {
  14. long thisTime = this.a + Math.max(this.b, that.a) + that.b;
  15. long thatTime = that.a + Math.max(this.a, that.b) + this.b;
  16.  
  17. return Long.compare(thisTime, thatTime);
  18. }
  19.  
  20. @Override
  21. public String toString() {
  22. return "(" + a + "," + b + ") - " + index;
  23. }
  24. }
  25.  
  26. public static void solve(long[] a, long[] b, int[] order) throws IOException {
  27. long[][] start = new long[2][a.length];
  28. int prev = -1;
  29. for (int i : order) {
  30. if (prev == -1) {
  31. start[0][i] = 0;
  32. start[1][i] = a[i];
  33. } else {
  34. start[0][i] = start[0][prev] + a[prev];
  35. start[1][i] = Math.max(start[1][prev] + b[prev], start[0][i] + a[i]);
  36. }
  37.  
  38. prev = i;
  39. }
  40.  
  41. long time = start[1][prev] + b[prev];
  42. bw.write(time + "n");
  43. for (int i = 0; i < start.length; ++i) {
  44. StringBuilder sb = new StringBuilder();
  45. for (int j = 0; j < start[0].length; ++j)
  46. sb.append(start[i][j] + " ");
  47. bw.write(sb.toString().trim() + "n");
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement