#include <Python.h>
#include <stdio.h>

#define FILENAME_SIZE 128
#define MAX_ATTEMPT 3

FILE *input(char []);
int size(FILE *);
void file_read(FILE *, int, int *);
void minimum(int,int*);
void maximum(int, int*);

int main(void){
    Py_Initialize();
    FILE *inp;
    int rec_num;
    inp = input("Enter input file name: ");
    rec_num = size(inp);
    int *A = PyMem_New(int, rec_num);
    file_read(inp,rec_num,A);
    minimum(rec_num,A);
    maximum(rec_num,A);
    PyMem_Free(A);
    Py_Finalize(); 
    return 0;
}



FILE *input(char txt[])
{
    char fname[FILENAME_SIZE];
    int attempt = MAX_ATTEMPT;
    FILE *in;

    printf("%s", txt);

    do{
        scanf("%s", fname);
        in = fopen(fname,"r");

        if(in == NULL){
            attempt--;
            printf("The file does not exist, attempts left: %d\n", attempt);
        }

    }while(in == NULL && attempt != 0);

    if(attempt == 0){
        printf("Couldn't open file\n");
        exit(1);
    }

    return in;
}

int size(FILE *in)
{
    int rec = 0;
    int num;

    while(fscanf(in,"%d",&num)==1)
        rec++;

    printf("Total numbers: %d\n", rec);

    rewind(in);
    return rec;
}


void file_read(FILE *inp, int n,  int *A){
    int i;
    for(i=0;i<n;i++){
            fscanf(inp,"%d",&A[i]);
    }
}

void minimum(int size, int *A){
    int min=A[0];
    int i;
    for(i=0;i<size;i++){
         min=Py_MIN(min,A[i]);
    }
    printf("%d\n",min);
}

void maximum(int size, int *A){
    int max=A[0];
    int i;
    for(i=0;i<size;i++){
        max = Py_MAX(max,A[i]);
    }
   printf("%d\n",max);
}
