程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實驗10:Problem C: STL——呵呵型自動機,stl自動機

實驗10:Problem C: STL——呵呵型自動機,stl自動機

編輯:C++入門知識

實驗10:Problem C: STL——呵呵型自動機,stl自動機


指令POP id  t有誤,只輸出隊首元素,而不是前t個。題目的問題,因為我Output Limit Exceed50%了7次。。。。。

Home Web Board ProblemSet Standing Status Statistics   Problem C: STL——呵呵型自動機

Problem C: STL——呵呵型自動機

Time Limit: 8 Sec  Memory Limit: 128 MB
Submit: 1890  Solved: 731
[Submit][Status][Web Board]

Description

xiaofei最近研發了一個呵呵型自動機,該自動機能夠同時處理n個隊列。其中,隊列的編號為1..n。給定m個操作,模擬該自動機的工作狀態。 第一行有2個整數n,m(1≤n, m≤10,000),表示自動機能處理n個隊列,接下來m行每行一條操作指令。 每條指令的格式如下: 指令 指令說明 INIT 將自動機初始化,此時所有的隊列清空。 PUSH id val t 把t個整數val加入到編號id的隊列的尾部。 POP id  t 輸出並刪除編號id的隊列的前t個隊首元素,如果隊列為空,則輸出“NULL”。   在每條指令中,id的編號在1..n中,val的取值范圍為-231~231。輸入數據保證操作的第一條指令都是是INIT。

 

Input

本題有多組輸入數據,你必須處理到EOF為止。

 

Output

請對輸入數據中每條POP指令的結果依次輸出一行結果。

 

Sample Input

3 12 INIT PUSH 1 100 1 POP 2 1 PUSH 3 300 1 PUSH 1 200 1 PUSH 2 -5 1 POP 2 1 PUSH 2 -10 1 POP 1 1 INIT PUSH 1 7 1 POP 1 1

Sample Output

NULL -5 100 7

HINT

用STL的queue容易解決

 

 

Append Code

 
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

#include<iostream>
#include<queue>
#include<string>
#define MAX 10002
using namespace std;

int main()
{
    queue<int>q[MAX];
    int n,m;
    string c;
    int id,val;
    while(cin>>n)
    {
        cin>>m;
        for(int i=0;i<m;i++)
        {

            cin>>c;
            if(c=="INIT")
            {
                for(int j=1;j<=m;j++)
                    while(!q[j].empty())
                        q[j].pop();
            }
            else if(c=="PUSH")
            {
                int t;

                cin>>id>>val>>t;
                while(t--)
                q[id].push(val);
            }
            else if(c=="POP")
            {
                int t;

                cin>>id>>t;


                    if(q[id].empty())
                    cout<<"NULL"<<endl;
                    else
                  {
                      queue<int> nq;
                    cout<<q[id].front()<<endl;
                    q[id]=nq;
                  }


            }
        }
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved