Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*package whatever //do not write package name here */
- import java.io.*;
- import java.util.*;
- class Code {
- static class Node
- {
- int shop;
- int vis_cnt;
- Node()
- {}
- Node(int s, int vc)
- {
- shop=s;
- vis_cnt=vc;
- }
- }
- static int[] solve(int n, int m, int visit[][])
- {
- int res[]=new int[3];
- int a[]=new int[n+2];
- Arrays.fill(a,0);
- for(int i=0;i<m;i++)
- {
- a[visit[i][0]]+=1;
- a[visit[i][1]+1]-=1;
- }
- for(int i=1;i<(n+2);i++)
- {
- a[i]+=a[i-1];
- }
- ArrayList<Node> nodes = new ArrayList<>();
- for(int i=1;i<(n+1);i++)
- {
- nodes.add(new Node(i,a[i]));
- }
- Collections.sort(nodes, new Comparator<Node>(){
- public int compare(Node a, Node b)
- {
- if(a.vis_cnt == b.vis_cnt)
- return a.shop-b.shop;
- return b.vis_cnt - a.vis_cnt;
- }
- });
- for(int i=0;i<3;i++)
- {
- res[i]=nodes.get(i).shop;
- }
- return res;
- }
- public static void main (String[] args) throws Exception{
- BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
- int t = Integer.parseInt(bf.readLine().trim());
- while (t-- > 0) {
- String s[] = bf.readLine().trim().split("\\s+");
- int n = Integer.parseInt(s[0]);
- int m = Integer.parseInt(s[1]);
- int visit[][] = new int[m][2];
- for(int i=0;i<m;i++)
- {
- s = bf.readLine().trim().split("\\s+");
- visit[i][0]=Integer.parseInt(s[0]);
- visit[i][1]=Integer.parseInt(s[1]);
- }
- int res [] = solve(n,m,visit);
- Arrays.sort(res);
- for(int i=0;i<3;i++)
- System.out.print(res[i]+" ");
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment