0-1수열 문제 런타임오류.

  • 200824437
    200824437
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #define MAX 100000
    using namespace std;
    
    int main(){
      char num[MAX];
      scanf("%s",&num);
      fflush(stdin);
      int size;
      size= strlen(num);
    
      int q_num;
      scanf("%d",&q_num);
      fflush(stdin);
      int *group;
      group = new int[size];
    
      int k=-1;
      int n=-1;
    
      for(int i=0; i<size; i++){
        if(n!=num[i]){
          k++;
          n=num[i];
        }
        group[i]=k;    
      }
    
      int a,b;
    
      for(int i=0; i<q_num; i++){
        scanf("%d%d",&a,&b);
        if(group[a]==group[b])
          printf("Yes\n");
        else
          printf("No\n");
      }
    
      return 0;
    }
    

    거의 다 한 듯 싶었는데 갑자기 RTE가 뜨네요.. 잘못된 메모리 접근이라는 거 같은데, 뭐가 문제인 지 잘 모르겠네요.


    12년 전
4개의 댓글이 있습니다.
  • hyunhwan
    hyunhwan

    우선 fflush(stdin); 이 부분을 제거해보시길 바랍니다.


    12년 전 link
  • Toivoa
    Toivoa

    수열의 길이가 10만이 아니라 100만입니다. 뒤에 붙는 \0 까지 고려해서 MAX를 1000001 이상으로 잡아주셔야 됩니다.


    12년 전 link
  • Taeyoon_Lee
    Taeyoon_Lee

    지역 변수로 1M을 잡는 것도 좀 위험해 보입니다... 전역으로 잡는 걸 추천합니다.


    12년 전 link
  • 200824437
    200824437

    아.. 수열의 길이 고치니깐 바로 되네요.. 감사합니다.


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