#4533: 错在哪里,请出题人明示,谢谢


linning (凝香雪海)

學校 : 湖北省宜昌市夷陵中学
編號 : 8570
來源 : [183.93.226.22]
最後登入時間 :
2011-07-19 12:04:14
d518. 文字抄寫 II | From: [58.19.246.33] | 發表日期 : 2010-11-12 20:21

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct node
{
        int No;
        char name[21];
}node;
node p[26][10001];
int pn[26],flag,x;

int insert(const char *s,node *a,int low,int high)
{
    int mid,i;
    if (high==0) { pn[s[0]-'a']=1; a[1].No=++x; strcpy(a[1].name,s); flag=0; return x; }
    while (low<=high)
    {
        mid=(low+high)/2;
        i=strcmp(s,a[mid].name);
        if (i==0) { flag=1; return a[mid].No; }
        else if (i==-1) high=mid-1;
             else low=mid+1;
    }
    for (i=pn[s[0]-'a'];i>=low;i--) a[i+1]=a[i];
    strcpy(a[low].name,s);
    a[low].No=++x;
    pn[s[0]-'a']++;
    flag=0;
    return x;
}

int main()
{
    int n,k,i;
    char s[21];
    while (scanf("%d",&n)==1)
    {
        x=0;
        memset(pn,0,sizeof(pn));
        for (i=0;i<n;i++)
        {
            scanf("%s",s);
            k=insert(s,p[s[0]-'a'],1,pn[s[0]-'a']);
            if (flag)  printf("Old! %ld\n",k);
            else  printf("New! %ld\n",k);
        }   
    }            
    return 0;
}
 
——————————————————————————————————————————
WA (line:173)
 
與正確輸出不相符(line:173)
您的答案為: New! 161
正確答案為: Old! 129 
 
如果超时还可理解,WA,实在郁闷!能否给出这一组的测资? 
 
#4536: Re:错在哪里,请出题人明示,谢谢


morris1028 (碼畜)

學校 : 國立花蓮高級中學
編號 : 3529
來源 : [114.37.59.62]
最後登入時間 :
2021-07-12 19:00:43
d518. 文字抄寫 II | From: [118.161.211.93] | 發表日期 : 2010-11-12 21:43

測資不容易提出來,而且很大筆,我也沒有辦法可以告訴你

在此深感抱歉,請其他的人幫你看看程式碼錯誤的地方吧

 
ZeroJudge Forum