#include <stdio.h>

#define MAX 100

int arr[MAX];
int count = 0;

// Display array
void display() {
    printf("Elements: ");
    for (int i = 0; i < count; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

// Search (linear search)
int search(int key) {
    for (int i = 0; i < count; i++) {
        if (arr[i] == key)
            return i;
    }
    return -1;
}

// Insert (keep sorted)
void insert(int key) {
    if (count == MAX) {
        printf("Array full\n");
        return;
    }

    // find position
    int i;
    for (i = count - 1; i >= 0 && arr[i] > key; i--) {
        arr[i + 1] = arr[i];  // shift right
    }

    arr[i + 1] = key;
    count++;
}

// Delete
void delete(int key) {
    int pos = search(key);

    if (pos == -1) {
        printf("Key not found\n");
        return;
    }

    for (int i = pos; i < count - 1; i++) {
        arr[i] = arr[i + 1];  // shift left
    }

    count--;
}

// Main
int main() {
    insert(50);
    insert(30);
    insert(70);
    insert(20);
    insert(40);
    insert(60);
    insert(80);

    display();

    printf("Search 40: %s\n", search(40) != -1 ? "Found" : "Not Found");

    delete(20);
    display();

    delete(50);
    display();

    insert(55);
    display();

    return 0;
}
