Freehug 문제인데요..

  • chajaeyoung
    chajaeyoung

    RTE Forbidden syscall 270 (__NR_tgkill).

    자꾸 이게뜨는데

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    int freehug(char *ary1, char *ary2);
    void aryplus(char *ary1);
    
    int main()
    {
      char ary1[300000];
      char ary2[300000];
      int t,a,b,c;
      int count=0;
    
      scanf("%d",&t);
    
      for(int i=0; i<t; i++)
      {
        scanf("%s",ary1);
        scanf("%s",ary2);
    
        if(t>20)
        {
          printf("프로그램을 종료합니다.");
          goto end;
        }
    
    
        a=strlen(ary1);
        b=strlen(ary2);
        if(a>b)
        {
          printf("프로그램을 종료합니다.");
          goto end;
        }
        c=b-a;
    
        for(int i=0; i<=c; i++)
        {
          if(freehug(ary1,ary2)==0)
          {
            count+=1;
          }
          aryplus(ary1);
          ary1[i]='F';
        }
    
        printf("%d\n",count);
    
        count=0;
        a=0;
        b=0;
        c=0;
    
        free(ary1);
        free(ary2);
    
      }
    
    end:
    
      return 0;
    }
    
    int freehug(char *ary1, char *ary2)
    {
      int a=0;
    
      for(int i=0; ary1[i] != NULL; i++)
      {
        if(ary1[i]=='M')
        {
          if(ary2[i]=='M')
          {
            a+=1;
          }
          else
          {
            a+=0;
          }
        }
        else
        {
          a+=0;
        }
      }
      return a;
    }      
    
    void aryplus(char *ary1)
    {
      int a;
      a=strlen(ary1);
    
      ary1[a]=0;
    
    
      for(int i=0; i<=a; i++)
      {
        ary1[a+1-i]=ary1[a-i];
      }
    }
    

    이게 소스랍니다 뭐가 문제죠 ㅠㅠ


    13년 전
1개의 댓글이 있습니다.
  • A.I
    A.I

    free() 호출이 문제가 될 것 같습니다.


    13년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.