#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <time.h>

#define ANSI_COLOR_RED     "\x1b[31m"
#define ANSI_COLOR_GREEN   "\x1b[32m"
#define ANSI_COLOR_YELLOW  "\x1b[33m"
#define ANSI_COLOR_RESET   "\x1b[0m"

int length,j,positivity=1;
char string[], words[][100],Database[][3][70]={{"syamil","pergi","kampus"},{"hanif","makan","coklat"},
                    {"azy","potong","rambut"},{"aldy","main","hp"},{"rafli","belajar","kalkulus"}};


void kon(){
    char st[100];
    int i,l;


    for(i=0; i<100; i++){
        st[i]=' ';
    }

    for(i=0; i<length; i++){
        st[i]=string[i];
    }

    for(i=0; i<length; i++){
        if ((st[i]=='t')&&(st[i+1]=='a')&&(st[i+2]=='k')){
            //geser
            for(l=i; l<length; l++){
                st[l]=st[l+4];
            }
            length-=4;
            positivity=0;
        }

        if ((st[i]=='t')&&(st[i+1]=='i')&&(st[i+2]=='d')&&(st[i+3]=='a')&&(st[i+4]=='k')){
            //geser
            for(l=i; l<length; l++)
            {st[l]=st[l+6];}

            length-=6;
            positivity=0;
        }
    }

    if (positivity==0){
        for(i=0; i<strlen(string); i++)
        {
            string[i]=st[i];
        }
    }
}

void kata(){
    char st[100];
    int i,l;


    for(i=0; i<100; i++)
    {
        st[i]=' ';
    }

    for(i=0; i<length; i++)
    {
        st[i]=string[i];
    }

    for(i=0; i<length; i++)
    {
        if ((st[i]=='k')&&(st[i+1]=='e')){
            for(l=i; l<length; l++){
                st[l]=st[l+3];
            }
            length-=3;
            i--;
        }
        if ((st[i]=='d')&&(st[i+1]=='i')&&(st[i+2]==' ')){
            for(l=i; l<length; l++){
                st[l]=st[l+4];
            }
            length-=4;
            i--;
        }
        if ((st[i]=='d')&&(st[i+1]=='i')&&(st[i+2]!=' ')){
            for(l=i; l<length; l++){
                st[l]=st[l+2];
            }
            length-=2;
            i--;
        }
        if ((st[i]=='d')&&(st[i+1]=='a')&&(st[i+2]=='n')){
            for(l=i; l<length; l++){
                st[l]=st[l+4];
            }
            length-=4;
            i--;
        }
        if ((st[i]=='i')&&(st[i+1]=='n')&&(st[i+2]=='i')){
            for(l=i; l<length; l++){
                st[l]=st[l+4];
            }
            length-=4;
            i--;
        }
        if ((st[i]=='i')&&(st[i+1]=='t')&&(st[i+2]=='u')){
            for(l=i; l<length; l++){
                st[l]=st[l+4];
            }
            length-=4;
            i--;
        }
        if ((st[i]=='y')&&(st[i+1]=='a')&&(st[i+2]=='n')&&(st[i+3]=='g')){
            for(l=i; l<length; l++){
                st[l]=st[l+5];
            }
            length-=5;
            i--;
        }
        if ((st[i]=='l')&&(st[i+1]=='a')&&(st[i+2]=='l')&&(st[i+3]=='u')){
            for(l=i; l<length; l++){
                st[l]=st[l+5];
            }
            length-=5;
            i--;
        }
        if ((st[i]=='m')&&(st[i+1]=='a')&&(st[i+2]=='k')&&(st[i+3]=='a')&&(st[i+4]==' ')){
            for(l=i; l<length; l++){
                st[l]=st[l+5];
            }
            length-=5;
            i--;
        }
    }

    for(i=0; i<strlen(string); i++)
    {
        string[i]=st[i];
    }
}

int main(){
 //   logo();
    system("cls");
    int i,match=0;
    scanf(" %[^\n]", string);
    length=strlen(string);
    //LOWERCASE THE STRING
        for (j = 0; j < strlen(string); j++)
            string[j] = tolower (string[j]);

    //CHECK POSITIVITY STATUS
        kon(string);
        length=strlen(string);

    //REMOVE MEANINGLESS WORD
        kata(string);
        printf("%s\nPositivity\t:  ", string);
        if (positivity==0)
            printf (ANSI_COLOR_RED "negative" ANSI_COLOR_RESET);
        else printf (ANSI_COLOR_GREEN "positive" ANSI_COLOR_RESET);

    //SUBSTRACT THE STRING
        sscanf((string),"%s %s %s ", &words[0], &words[1], &words[2]);
        printf("\n\n%s\n%s\n%s", words[0], words[1], words[2]);

    //CROSSCHECK TO THE DATABASE
        for(i=0;i<5;i++){
            for(j=0;j<3;j++){
                if (strcmp(words[0],Database[i][j])==0){
                    for(j=0;j<3;j++){
                        if (strcmp(words[1],Database[i][j])==0){
                            for(j=0;j<3;j++){
                                if (strcmp(words[2],Database[i][j])==0)  match=1;
                            }
                        }
                    }
                }
            }
        }
        printf("\nMatch Status\t: ");
        if (match==0)
        printf(ANSI_COLOR_RED "not found" ANSI_COLOR_RESET);
        else printf(ANSI_COLOR_GREEN "found" ANSI_COLOR_RESET);


    //EVALUATE THE RESULT
        if(match==0){
            printf(ANSI_COLOR_YELLOW "\n\nTidak ada pada database, keabsahan tidak bisa ditentukan\n\n" ANSI_COLOR_RESET);
        }else if(positivity==1){
            printf(ANSI_COLOR_GREEN "\n\nKalimat sesuai dengan database, Keabsahan dikonfirmasi\n\n" ANSI_COLOR_RESET);
        }else{
            printf(ANSI_COLOR_RED "\n\nTidak sesuai dengan database, berita tidak valid\n\n" ANSI_COLOR_RESET);
        }

        system("pause");
    return 0;
}
