#include <stdio.h>
    #include <conio.h>
    #define size 5
    int queue[5][2] = {0};
    int top = -1;
    int bottom;
    void push(int value, int pr)
    {
    int i,j,k;
    if(top < size-1)
    {
    if(queue[top][1] > pr)
    {
    for(i=0;i<top;i++)
    {
    if(queue[i][1] > pr)
    {
    break;
    }
    }
    for(j=top;j>=i;j--)
    {
    queue[j+1][0] = queue[j][0];
    queue[j+1][1] = queue[j][1];
    }
    top++;
    queue[i][0] = value;
    queue[i][1] = pr;
    }
    else
    {
    top++;
    queue[top][0] = value;
    queue[top][1] = pr;
    }
    }
    else
    {
    printf("queue overflow \n");
    }
    }
    void pop()
    {
    int i;
    if(queue[0][0] == 0)
    {
    printf("\n The queue is empty  \n");
    }
    else
    {
    printf("After , dequeue the following value is erased \n  %d \n", queue[0][0]);
    for(i=0;i<top;i++)
    {
    queue[i][0] = queue[i+1][0];
    queue[i][1] = queue[i+1][1];
    }
    queue[top][0] = 0;
    queue[top][1] = 0;
    top--;
    }
    }
    void display()
    { int i,j;
    printf("Element\tPriority \n");
    for(i=size - 1;i>=0;i--)
    {
    for(j=0;j<2;j++)
    {
    printf(" %d\t",queue[i][j]);
    }
    printf("\n");
    }
    }
    int main()
    {
    int i,j, ch=0 ,value = 0,pr=0;
    while(1)
    {
    printf("\n Please Enter the choice. \n");
    printf("1 for Enqueue \n 2 for Dequeue \n 3 for display\n  5 for exit: \t \n");
    scanf("%d",&ch);
    switch(ch)
    {
    case 1:
    printf("\n Please Enter the number to be inserted: \t ");
    scanf("%d", &value);
    printf("\n Please Enter the priority: \t ");
    scanf("%d", &pr);
    push(value,pr);
    break;
    case 2:
    pop();
    break;
    case 3:
    display();
    break;
    case 5:
    exit(0);
    default:
    printf("You entered wrong choice\n");
    }
    }
    }