UVA - 11995 I Can Guess the Data Structure! 데이터 구조 맞 추기 (STL 시 뮬 레이 션)

대체 제목:
두 가지 조작 이 있어 요.   1  x. x 를 집합 에 넣다.
2 x x 에서 추출 한 첫 번 째 요 소 는 x 입 니 다.
이 집합 이 우선 대기 열 이 냐, 일반 대기 열 이 냐, 창고 냐 고 물 었 다.아직 확실 하지 않 아, 불가능 해!
생각:
그냥 세 개 들 고 시 뮬 레이 션 하면 돼!
비교적 간단 하고 구체 적 으로 는 더 이상 말 하지 않 겠 습 니 다. 상세 한 것 은 코드 를 보십시오.
#include
#include
#include
#include
#include
using namespace std;
priority_queue,less >q;
stacks;
queueq2;
int main(){
    int n;
    while(scanf("%d",&n) == 1){
        while(!q.empty())q.pop();
        while(!q2.empty())q2.pop();
        while(!s.empty())s.pop();
        int x,y,z;
        x = y = z = 1;
        for (int i = 0; i < n; ++i){
            int u,v;
            scanf("%d %d",&u,&v);
            if (u == 1){
                q.push(v);
                q2.push(v);
                s.push(v);
                continue;
            }
            if (x){
                if (q.empty() || q.top() != v)x = 0;
                else q.pop();
            }
            if (y){
                if (q2.empty() || q2.front() != v)y = 0;
                else q2.pop();
            }
            if (z){
                if (s.empty() || s.top() != v)z = 0;
                else s.pop();
            }
        }
        if (x + y + z > 1)printf("not sure
"); else if (x + y + z == 0)printf("impossible
"); else if (x)printf("priority queue
"); else if (y)printf("queue
"); else printf("stack
"); } return 0; }

좋은 웹페이지 즐겨찾기