AcWing 132. 小组队列java
原题链接
简单
作者:
huaqingren
,
2020-11-22 20:24:39
,
所有人可见
,
阅读 358
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main
{
private static int N=1010;
private static int M=1000010;
private static int[] teamid=new int[M];
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
int c=1;
while(scan.hasNextInt())
{
int num=scan.nextInt();
if(num==0)
break;
System.out.println("Scenario #"+(c++));
Queue<Integer> team=new LinkedList<>();
Queue<Integer>[] people=new Queue[N];
for(int i=0;i<N;i++)
people[i]=new LinkedList<>();
for(int i=0;i<num;i++)
{
int t=scan.nextInt();
for(int j=0;j<t;j++)
{
int x=scan.nextInt();
teamid[x]=i;
}
}
String command="";
while(scan.hasNext())
{
command=scan.next();
if(command.equals("STOP"))
break;
if(command.equals("ENQUEUE"))
{
int x=scan.nextInt();
int tid=teamid[x];
if(people[tid].isEmpty())
team.offer(tid);
people[tid].offer(x);
}
else
{
int tid=team.peek();
System.out.println(people[tid].poll());
if(people[tid].isEmpty())
team.poll();
}
}
System.out.println();
}
scan.close();
}
}