Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.PriorityQueue;
- import java.util.Queue;
- public class RoundRobin {
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- Queue<Proces> redica = new PriorityQueue<>();
- int N = Integer.parseInt(br.readLine());
- for (int i = 0; i < N; i++) {
- String []s = br.readLine().split(" ");
- Proces p = new Proces(s[0],Integer.parseInt(s[1]),Integer.parseInt(s[2]),0);
- redica.add(p);
- }
- int q = Integer.parseInt(br.readLine());
- br.close();
- int brojac = 0;
- while(redica.size() > 0){
- Proces tmp = redica.poll();
- if(q < tmp.izvrsuvanje)
- {
- int iz = tmp.izvrsuvanje - q;
- brojac++;
- redica.add(new Proces(tmp.name,iz,tmp.pristignuvanje,brojac));
- }
- System.out.print(tmp.name+" ");
- }
- }
- }
- class Proces implements Comparable<Proces>{
- String name;
- int izvrsuvanje;
- int pristignuvanje;
- int priority;
- public Proces(String name,int i, int p, int pri) {
- this.name = name;
- this.izvrsuvanje = i;
- this.pristignuvanje = p;
- this.priority = pri;
- }
- @Override
- public int compareTo(Proces p) {
- if(this.priority > p.priority)
- return 1;
- else if(this.priority < p.priority)
- return -1;
- else{
- if(this.pristignuvanje > p.pristignuvanje)
- return 1;
- else if(this.pristignuvanje < p.pristignuvanje)
- return -1;
- else{
- if(this.izvrsuvanje > p.izvrsuvanje)
- return -1;
- else
- return 1;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment