페이지

10845번: 큐

https://www.acmicpc.net/problem/10845


$O(n)$


#include<cstdio>
int q[10000], h, t, n;
char s[6];
int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%s", s);
        if (s[0] == 'p' && s[1] == 'u') scanf("%d\n", &q[t++]);
        else if (s[0] == 'p') printf("%d\n", h == t ? -1 : q[h++]);
        else if (s[0] == 's') printf("%d\n", t - h);
        else if (s[0] == 'e') printf("%d\n", h == t);
        else if (s[0] == 'f') printf("%d\n", h == t ? -1 : q[h]);
        else printf("%d\n", h == t ? -1 : q[t - 1]);
    }
    return 0;
}

댓글 없음 :

댓글 쓰기