//#include<stdio.h>
//
//#define MAXSIZE 5
//
//int stack[MAXSIZE] = {0};
//int top = 0;
//
//void push(int k) {
// if(top==MAXSIZE) {
// printf("stack is full\n");
// return;
// }
// stack[top++] = k;
//}
//
//int pop() {
// if(top==0) {
// return -123;
// }
// top--;
// int k = stack[top];
// stack[top] = 0;
// return k;
//}
//
//void show() {
// for(int i=0; i<MAXSIZE; i++) {
// printf("%d: %d\n", i, stack[i]);
// }
//}
//
//int main() {
// int n, k;
//
// for(;;) {
// printf("choice menu: ");
// scanf("%d", &k);
//
// switch(k) {
// case 1:
// printf("input data is: ");
// scanf("%d", &k);
// push(k);
// break;
// case 2:
// k = pop();
//
// if(k==-123) {
// printf("stack is null\n");
// }
// else {
// printf("pop data is %d\n", k);
// }
// break;
// case 3:
// printf("stack is...\n");
// show();
// break;
// default:
// printf("input error");
// }
//
// }
//
//}
//#include <stdio.h>
//
//
//int number[100000] = {0};
//int stack[100000] = {0};
//int top = 0;
//
//void push(int k)
//{
// if (top == 100000)
// return;
// stack[top++] = k;
//}
//
//int pop()
//{
// if(top == 0)
// return 0;
// top--;
// int k = stack[top];
// stack[top] = 0;
// return k;
//}
//
//int main()
//{
// int num;
//
// scanf("%d", &num);
//
// for (int i=0; i<num; i++)
// {
// scanf("%d", &number[i]);
// }
//
//
// for (int i=0; i<num; i++)
// {
// if (number[i] != 0)
// {
// push(number[i]);
// }
// if (number[i] == 0)
// {
// pop();
// }
//
// }
//
// int sum=0;
//
// for (int i=0; i<num; i++)
// {
// sum += stack[i];
// }
//
// printf("%d", sum);
//
//}
//#include <stdio.h>
//
//
//int stack[200]={};
//int top = 0;
//
//void push(int k)
//{
// if(top==200)
// return;
// stack[top++] = k;
//}
//
//int pop()
//{
// if (top ==0)
// return 0;
// top--;
// int k = stack[top];
// stack[top] = 0;
// return k;
//}
//
//int main()
//{
// char sen[300]={};
// gets(sen);
//
// int cont=0;
//
// for (int i=0; i<strlen(sen); i++)
// {
// if(sen[i]==' ')
// {
// cont=0;
// }
// else
// {
// if(sen[i] >= '0' && sen[i] <= '9')
// {
// if (cont == 0)
// {
// push(sen[i]-'0');
// cont++;
// }
// else
// {
// int k=pop();
// k = k*10 + (sen[i]-'0');
// push(k);
// cont++;
// }
// }
// else
// {
// int k=pop();
// int j=pop();
// if(sen[i]=='*')
// {
// k = k*j;
// push(k);
// }
// else if(sen[i]=='+')
// {
// k = k+j;
// push(k);
// }
// else if(sen[i]=='-')
// {
// j = j-k;
// push(j);
// }
// }
// }
// }
//
// printf("%d", stack[0]);
//
//
//}
#include <stdio.h>
#define MAXSIZE 5
int queue[MAXSIZE] = {};
int front, rear = 0;
void input(int k)
{
if (front==MAXSIZE && rear==0)
{
printf("Queue is full\n");
return;
}
if (front==MAXSIZE && rear!=0)
{
for(int i=rear; i<MAXSIZE; i++)
{
queue[i-rear] = queue[i];
queue[i] = 0;
}
front -=rear; //밖에
rear = 0;
queue[front++] = k;
return;
}
queue[front++] = k;
if (front > MAXSIZE)
{
front = MAXSIZE;
}
printf("%d %d\n", rear,front);
}
int output()
{
if (front ==rear)
{
printf("Queue is empty");
return 0;
}
int k = queue[rear];
queue[rear] = 0;
rear++;
printf("%d %d\n", rear,front);
return k;
}
void show()
{
for (int i=0; i<MAXSIZE; i++)
{
printf("%d: %d\n", i, queue[i]);
}
printf("%d %d\n", rear,front);
}
int main()
{
int n, k, p;
for(;;)
{
printf("Choice Menu: ");
scanf("%d", &n);
switch(n)
{
case 1:
printf("Input data is: ");
scanf("%d", &k);
input(k);
break;
case 2:
p = output();
printf("output data is: %d\n", p);
break;
case 3:
show();
}
}
}



