#35665: ac 95% #6:記憶體區段錯誤!


720222@csc.pjhs.tyc.edu.tw (暗夜)

學校 : 不指定學校
編號 : 154378
來源 : [182.233.186.69]
最後登入時間 :
2024-01-05 15:16:04
k734. 4. 開啟寶盒 -- 2023年6月APCS | From: [111.248.45.231] | 發表日期 : 2023-06-11 14:25

#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    node *next;
};
struct node2
{
    int need;
    int key[5];
    node2 *next;
};
void f(int t,int*sum,node *M,node2 *N,int k)
{
    int c;
    while(M[t].next!=NULL)
    {
        c=M[t].next->data;
        M[t].next=M[t].next->next;
        N[c].need++;
        if(N[c].need==k)
        {
            *sum=*sum+1;
            for(int i=0; i<k; i++)
                f(N[c].key[i],sum,M,N,k);
        }
    }
}
int main()
{
    int n,m,k,t,sum,i,j,c;
    scanf("%d%d%d%d",&n,&m,&k,&t);
    int T[t];
    node M[m];
    node2 N[n];
    node *ptr=NULL;
    sum=0;
    for(i=0; i<t;i++)
        scanf("%d",&T[i]);
    for(i=0; i<m;i++)
        M[i].next=NULL;
    for(i=0; i<n;i++)
    {
        N[i].need=0;
        for(j=0; j<k;j++)
        {
            scanf("%d",&c);
            node *newnode=(node*)malloc(sizeof(node));
            newnode->next=NULL;
            newnode->data=i;
            ptr=&M[c];
            while(ptr->next!=NULL)
                ptr=ptr->next;
            ptr->next=newnode;
        }
    }
    for(i=0; i<n;i++)
        for(j=0; j<k;j++)
            scanf("%d",&N[i].key[j]);
    for(i=0; i<t;i++)
        f(T[i],&sum,&M[0],&N[0],k);
    printf("%d",sum);
}
 
#35704: Re: ac 95% #6:記憶體區段錯誤!


720222@csc.pjhs.tyc.edu.tw (暗夜)

學校 : 不指定學校
編號 : 154378
來源 : [182.233.186.69]
最後登入時間 :
2024-01-05 15:16:04
k734. 4. 開啟寶盒 -- 2023年6月APCS | From: [42.73.89.143] | 發表日期 : 2023-06-13 11:38

已解決



 
ZeroJudge Forum