ROUTING 문제 RTE 질문드립니다.

  • sven
    sven

    제 컴퓨터에서는 잘 돌아가는데 여기서는 런타임 에러가 뜨네요.
    어느 부분에서 문제가 있는지 잘 모르겠어서 질문드립니다.
    아래는 코드입니다.

    ROUTING

    using namespace std;
    
    class E
    {
    public:
        int start;
        int end;
        double value;
    
        E(int a, int b, double c)
        {
            start = a;
            end = b;
            value = c;
        }
    };
    
    bool operator > (const E& A, const E& B)
    {
        return A.value > B.value;
    }
    
    void solve();
    
    int main()
    {
        int T;
        cin >> T;
        while(T--)
            solve();
    }
    
    void solve()
    {
        int N, M;
        vector<E> *A;
        cin >> N >> M;
        A = new vector<E>[N];
        for(int i=0; i<M; i++)
        {
            int temp[2];
            double tempp;
            cin >> temp[0] >> temp[1] >> tempp;
            A[temp[0]].push_back(E(temp[0],temp[1],tempp));
            A[temp[1]].push_back(E(temp[0],temp[1],tempp));
        }
    
        double *B;
        B = new double[N];
        B[0] = 1;
        int current = 0;
        bool *mark;  
        mark = new bool[N];
        mark[0] = true;
        for(int i=1; i<N; i++) 
            mark[i] = false;
        priority_queue <E, deque<E>, greater<deque<E>::value_type> > C;
        while(!mark[N-1])
        {   
            for(int i=0; i<A[current].size(); i++)
                C.push(A[current][i]);
            while(mark[C.top().end])
                C.pop();
            E target = C.top();
            C.pop();
            B[target.end] = B[current] * target.value;
            mark[target.end] = true;
            current = target.end;
        }
        cout << B[N-1] << endl;
    }
    

    11년 전
5개의 댓글이 있습니다.
  • sven
    sven

    sven@bit:~/algo$ gcc --version
    gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
    Copyright (C) 2011 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    채점 환경이랑 같은 것 같은데 무슨 차이인지 모르겠네요. ㅜㅜ


    11년 전 link
  • Being
    Being

    다음부터는 문법 도움말을 참조해서 코드를 올려 주세요. RTE는 다른 분들께 패스..=3=3


    11년 전 link
  • kcm1700
    kcm1700

    어떤 이유에 의해 C가 비어있는데 C.top()이 불리고 그래서 죽네요.


    11년 전 link
  • JongMan
    JongMan

    "제 컴퓨터에서는 잘 돌아가는데" 는 큰 의미가 없습니다. 런타임 에러가 나는 대부분의 경우는 특정 입력 형태를 처리하는 데 실패하는 것인데, 이 경우가 예제 입력에 있는 경우는 대단히 희귀하기 때문입니다. 이럴 때는 안될 수 있는 시나리오가 있는지, 코드에서 가정하는 것들이 항상 모두 성립하는지 고민해 보는 것이 좋습니다.


    11년 전 link
  • sven
    sven

    Being// 글 써보는게 처음이라 몰랐네요. 감사합니다!
    kcm1700// 감사합니다! 확인해보겠습니다.
    JongMan// RTE를 잘못 이해하고 있었네요. 컴파일 에러 비슷한 것인 줄... 감사합니다!


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