fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. /* Name of the class has to be "Main" only if the class is public. */
  6.  
  7. class NPRE
  8. {
  9. private int pnum;
  10. class SRT
  11. {
  12. int atime;
  13. int stime;
  14. int ftime;
  15. int tat;
  16. int ntat;
  17. public SRT()
  18. {}
  19. // public FCFS(int atime)
  20. // {
  21.  
  22. // }
  23. }
  24. public NPRE(int num)
  25. {
  26. pnum=num;
  27. }
  28.  
  29. private ArrayList<SRT> obj;
  30. public void createProcesses(BufferedReader bf) throws Exception
  31. {
  32. obj=new ArrayList<>();
  33. for(int i=0;i<pnum;i++)
  34. {
  35. SRT srt=new SRT();
  36.  
  37. srt.atime=Integer.parseInt(bf.readLine());
  38.  
  39. srt.stime=Integer.parseInt(bf.readLine());
  40.  
  41. obj.add(srt);
  42.  
  43. }
  44. Collections.sort(obj,new Comparator<SRT>()
  45. {
  46. public int compare(SRT f1,SRT f2)
  47. {
  48. if(f1.atime<f2.atime)
  49. return -1;
  50. else
  51. return 1;
  52. }
  53. });
  54.  
  55. }
  56. public void findTAT()
  57. {
  58.  
  59. ArrayList<SRT>arr=new ArrayList<>();
  60. for(SRT srt:obj)
  61. arr.add(srt);
  62.  
  63. int min=arr.get(0).atime;
  64. int temp=0;
  65. while(arr.size()!=0)
  66. {
  67. SRT srt=arr.get(0);
  68. int remtime=arr.get(0).stime;
  69. for(int i=1;i<arr.size();i++)
  70. {
  71. if(arr.get(i).atime<=min)
  72. {
  73. if(arr.get(i).stime<remtime)
  74. {
  75. remtime=arr.get(i).stime;
  76. srt=arr.get(i);
  77. }
  78. }
  79. }
  80. if(srt.stime>0)
  81. {
  82. srt.stime-=1;
  83. temp++;
  84. }
  85. else
  86. {
  87. srt.ftime=temp;
  88. srt.tat=srt.ftime-srt.atime;
  89. arr.remove(srt);
  90. }
  91. min=temp;
  92.  
  93. }
  94. }
  95.  
  96.  
  97.  
  98. public void displayTAT()
  99. {
  100. for(int i=0;i<obj.size();i++)
  101. {
  102. System.out.println("tat for process"+i+"is: "+obj.get(i).tat);
  103.  
  104. }
  105. }
  106.  
  107. public static void main (String[] args) throws java.lang.Exception
  108. {
  109. int num=Integer.parseInt(bf.readLine());
  110. NPRE npre=new NPRE(num);
  111. npre.createProcesses(bf);
  112. npre.findTAT();
  113. npre.displayTAT();
  114. }
  115. }
Success #stdin #stdout 0.1s 36132KB
stdin
5
0
3
2
6
4
4
6
5
8
2
stdout
tat for process0is: 3
tat for process1is: 13
tat for process2is: 4
tat for process3is: 14
tat for process4is: 2