13776 - Doraemon visits NTHU

                Never    
C
       
#include <stdio.h>
#include <ctype.h>
#include <string.h>

int find_str(char const *str, char const *substr){
    char *pos = strstr(str, substr);
    return pos ? 1 : 0;
}

int same(char const *str1, char const *str2){
    int is = 1;
    if(strlen(str1) != strlen(str2)) is = 0;
    else{
        int len = strlen(str1);
        for (int i = 0; i < len; i++){
            if (str1[i] != str2[i]){
                is = 0;
                break;
            }
        }
    }

    return is;
}

int main(){
    char s[1010], ts[1010], done[600][40];
    int num = 0;
    int first = 1;
    while (gets(s) != NULL){
        char *token = strtok(s, ",:");
        int cnt = 0;
        while (token){
            cnt++;
            if (!(cnt % 2)){
                char temp[40];
                strcpy(temp, token);
                int len = strlen(temp);
                for (int i = 0; i < len; i++) temp[i] = tolower(temp[i]);
                int yes = 0;
                yes = find_str(temp, "under construction");
                int d = 0;
                for (int i = 0; i < num; i++){
                    if (same(done[i], ts)){
                        d = 1;
                        break;
                    }
                }
                if (yes && !d){
                    strcpy(done[num], ts);
                    num++;
                }
            }
            else{
                if(first == 1){
                    strcpy(ts, token);
                    first = 0;
                }
                else strcpy(ts, token+1);
                int len = strlen(ts);
                /*
                for (int k = 0; k < len; k++){
                   if (ts[k] == ' '){
                       for (int i = k; i < len; i++) ts[i] = ts[i + 1];
                       len = strlen(ts);
                   }
                   else break;
                }
                */
                for (int k = len; 0 <= k; k--){
                   if (ts[k] == ' ') ts[k] = '\0';
                   else if(ts[k] != '\0') break;
                }
            }
            token = strtok(NULL, ",:");
        }
        first = 1;
    }

    for (int i = 0; i < num; i++) puts(done[i]);

    return 0;
}

Raw Text