Problem 1589 自动机.
思路
代码
#include<cstdio>
#include<cstring>
using namespace std;
struct Queue{
int val[100];
int first;
int end;
}queues[10000];
void init(int n){
for(int i=1; i<=n; i++){
memset(queues[i].val, 0, sizeof(queues[i].val));
queues[i].first = 0;
queues[i].end = 0;
}
}
void push(int i, int v){
queues[i].val[queues[i].end] = v;
queues[i].end++;
}
void pop(int i){
if(queues[i].first==queues[i].end)
printf("NULL\n");
else{
printf("%d\n", queues[i].val[queues[i].first]);
queues[i].val[queues[i].first] = 0;
queues[i].first++;
}
}
int main(){
int n, m, val, id, ans;
char order[5];
while(scanf("%d%d", &n, &m)!=EOF){
for(int i=0; i<m; i++){
scanf("%s", order);
if(strcmp(order, "INIT")==0){
init(n);
}else if(strcmp(order, "PUSH")==0){
scanf("%d%d", &id, &val);
push(id, val);
}else{
scanf("%d", &id);
pop(id);
}
}
}
return 0;
}