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. srt=arr.get(i);
  75.  
  76. }
  77. }
  78. if(srt.stime>0)
  79. {
  80. srt.stime-=1;
  81. temp++;
  82. }
  83. else
  84. {
  85. srt.ftime=temp;
  86. srt.tat=srt.ftime-srt.atime;
  87. arr.remove(srt);
  88. }
  89. min=temp;
  90.  
  91. }
  92. }
  93.  
  94.  
  95.  
  96. public void displayTAT()
  97. {
  98. for(int i=0;i<obj.size();i++)
  99. {
  100. System.out.println("tat for process"+i+"is: "+obj.get(i).tat);
  101.  
  102. }
  103. }
  104.  
  105. public static void main (String[] args) throws java.lang.Exception
  106. {
  107. int num=Integer.parseInt(bf.readLine());
  108. NPRE npre=new NPRE(num);
  109. npre.createProcesses(bf);
  110. npre.findTAT();
  111. npre.displayTAT();
  112. }
  113. }
Success #stdin #stdout 0.1s 36116KB
stdin
5
0
3
2
6
4
4
6
5
8
2
stdout
tat for process0is: 3
tat for process1is: 13
tat for process2is: 6
tat for process3is: 14
tat for process4is: 2