#3198: 真無言...


hankofficer (Twilight Sparkle)

學校 : 國立臺灣海洋大學
編號 : 9947
來源 : [140.121.197.163]
最後登入時間 :
2015-01-10 17:04:22
d517. 文字抄寫 I | From: [140.121.213.185] | 發表日期 : 2010-01-04 07:20

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

int strmatch(const char* string1,const char* string2) {
    int i;

    if( strlen(string1) != strlen(string2) ) {
        return 0;
    } else {
        for(i=0; i < strlen(string1)+1 ;i++){
            if( *(string1+i) != *(string2+i) ){
                return 0;
            }
        }
        return 1;
    }

    return -1;
}

int main(void){
    char store[200000][5],str[5];
    int i,j,target,num,old;
        
    while(scanf("%d",&num)!=EOF){
        target = 0;
        for(i=0;i<num;i++){
            old = 0;
            if(scanf("%s",str)==EOF) return 0;
            if(i!=0) {
                for(j=0;j<target;j++){
                    if( strmatch(store[j],str) ){
                        old = 1;
                        printf("Old! %d\n",j+1);
                        break;
                    }
                }
            }
            if(!old){
                strcpy(store[target],str);
                printf("New! %d\n",++target);
            }
        }
    }
    
    return 0;
}

不用while會WA

用了卻TLE

自己測試都沒怎樣

(&*#)(!@... >"<

 
#3199: Re:真無言...


example (學姊)

學校 : 臺北市立麗山高級中學
編號 : 6634
來源 : [60.250.138.144]
最後登入時間 :
2022-08-09 17:07:42
d517. 文字抄寫 I | From: [118.166.114.216] | 發表日期 : 2010-01-04 17:16

#include
#include
#include

int strmatch(const char* string1,const char* string2) {
    int i;

    if( strlen(string1) != strlen(string2) ) {
        return 0;
    } else {
        for(i=0; i < strlen(string1)+1 ;i++){
            if( *(string1+i) != *(string2+i) ){
                return 0;
            }
        }
        return 1;
    }

    return -1;
}

int main(void){
    char store[200000][5],str[5];
    int i,j,target,num,old;
        
    while(scanf("%d",&num)!=EOF){
        target = 0;
        for(i=0;i
            old = 0;
            if(scanf("%s",str)==EOF) return 0;
            if(i!=0) {
                for(j=0;j
                    if( strmatch(store[j],str) ){
                        old = 1;
                        printf("Old! %d\n",j+1);
                        break;
                    }
                }
            }
            if(!old){
                strcpy(store[target],str);
                printf("New! %d\n",++target);
            }
        }
    }
    
    return 0;
}

不用while會WA

用了卻TLE

自己測試都沒怎樣

(&*#)(!@... >"<

 把 whlie( scanf("%d", &num ) != EOF ) 改成 while( scanf("%d", &num ) == 1 ) 會更快
 
ZeroJudge Forum