#include <stdlib.h>
#include <stdio.h>

#define TRUE 1
#define FALSE 0

int e[] = {11, 17, 23};

struct data{
    unsigned int value;
    char *quote;
};

unsigned int offset = 0xBABEBEEF;
struct data food = {0xF00D, "To survive, we need\0"};
struct data coffee = {0x00C0FFEE, "In the morning, it wake us up\0"};
struct data dead = {0xDEAD, "No more sunlights seen, always we finish so\0"};
struct data *d[3] = {&food, &coffee, &dead};

int check_input(int value){
    if(value > 0 && value % 2 == 1)
        return TRUE;
    else if (value < 0 && value % 2 == 0)
        return TRUE;

    return FALSE;
}

int main(int argc, char *argv[]){
    char all_right = TRUE;

    if(argc != 4){
        printf("Usage: %s <int1> <int2> <int3>\n", argv[0]);
        return 1;
    }

    for(int i = 0; i < 3 && all_right; i++)
        all_right =  check_input(atoi(argv[i + 1])) &&
                (atoi(argv[i + 1])*((unsigned)e[i]) + offset) == d[i]->value;

    if(all_right)
        printf("WIN!\n");
    else
        printf("I'm really disappointed :(. Try next time\n");

    return 0;
}
