#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>   // for isalpha()
int main() {
    int n;
    scanf("%d", &n);
    if (n < 0) {
        printf("Invalid input\n");
        return 0;
    }
    // Allocate memory dynamically for n characters
    char arr = (char)malloc(sizeof(char)*n);
    char *p = arr;  // pointer to traverse
    int sumEven = 0, sumOdd = 0;
    for (int i = 0; i < n; i++) {
        scanf(" %c", p);  // read character into allocated memory
        if (!isalpha(*p)) {  // cursed symbol check
            printf("Invalid input\n");
            free(arr);   // free memory before exiting
            return 0;
        }
        if (((int)(*p)) % 2 == 0) {
            sumEven += (int)(*p); // also sumEven = sumEven + (int)(*p);
        } 
        else {
            sumOdd += (int)(*p);
        }
        p++;  // move pointer forward
    }
    printf("%d\n", abs(sumEven - sumOdd));
    free(arr);  // release allocated memory
    return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main() {
    int n;
    scanf("%d", &n);
    if (n < 0) {
        printf("Invalid input\n");
        return 0;
    }
    // Dynamically allocate memory for n integers
    int arr = (int)malloc(n*sizeof(int));
    // Read elements into dynamically allocated array
    for (int i = 0; i < n; i++) {
        if (scanf("%d", arr + i) != 1) {  // input validation
            printf("Invalid input\n");
            free(arr);
            return 0;
        }
    }
    // Print original array
    for (int i = 0; i < n; i++) {
        printf("%d ", *(arr + i));
    }
    printf("\n");
    // Reverse array in place using pointers
    int *start = arr;
    int *end = arr + n - 1;
    while (start < end) {
        int temp = *start;
        *start = *end;
        *end = temp;
        start++;
        end--;
    }
    // Print reversed array
    for (int i = 0; i < n; i++) {
        printf("%d ", *(arr + i));
    }
    printf("\n");

    free(arr);  // free allocated memory
    return 0;
}


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>   // for isdigit()
int main() {
    int n =50;
    // Allocate memory dynamically for n+1 (extra for null terminator if needed)
    char *str = (char *)malloc((n + 1) * sizeof(char));
    // Read the string
    scanf("%s", str);
    // Pointer to traverse
    char *p = str;
    // Validation: check digits
    while (*p != '\0') {
        if (isdigit(*p)) {
            printf("Invalid input\n");
            free(str);
            return 0;
        }
        p++; //at the end p='\0'
        //'\0' is NULL character at the end of every string
    }
    // Reset pointer for processing (from '\0' to str[0])
    *p = *str; 
    char minChar = *p; //minChar becomes str[0]
    // Find minimum ASCII character
    while (*p != '\0') { //loops form str[0] to '\0'
        if (*p < minChar) {
            minChar = *p;
        }
        p++;
    }
    printf("%c\n", minChar);
    free(str);  // free allocated memory
    return 0;
}


#include <stdio.h>
#include <stdlib.h>   // for malloc(), free()
int main() {
    // Allocate memory for base and exponent dynamically
    int base = (int) malloc(sizeof(int));
    int exponent = (int) malloc(sizeof(int));
    scanf("%d %d", base, exponent);
    // Validation: both must be between 0 and 10 inclusive
    if (*base < 0 || *exponent < 0 || *base > 10 || *exponent > 10) {
        printf("Invalid input\n");
        free(base);
        free(exponent);
        return 0;
    }
    long long result = 1;
    for (int i = 0; i < *exponent; i++) {
        result *= *base;
    }
    printf("%lld\n", result);
    // Free allocated memory
    free(base);
    free(exponent);
    return 0;
}


#include <stdio.h>
#include <stdlib.h>
int main() {
    int n;
    if (scanf("%d", &n) != 1 || n <= 0) {
        printf("Invalid Input\n");
        return 0;
    }
    //allocate memory for n integers
    int *arr = (int *)malloc(n * sizeof(int));
    // Read array elements
    for (int i = 0; i < n; i++) {
        if (scanf("%d", arr + i) != 1) {
            printf("Invalid Input\n");
            free(arr);
            return 0;
        }
    }
    // Use pointers to find min and max
    int *p = arr;
    int *minPtr = arr;
    int *maxPtr = arr;
    for (int i = 0; i < n; i++) {
        if (*p < *minPtr) minPtr = p;
        if (*p > *maxPtr) maxPtr = p;
         p++;
    }
    // Swap min and max
    if (minPtr != maxPtr) {
        int temp = *minPtr;
        *minPtr = *maxPtr;
        *maxPtr = temp;
    }
    // Print modified array
    for (int i = 0; i < n; i++) {
        printf("%d ", *(arr + i));
    }
    printf("\n");
    free(arr);
    return 0;
}