childrenday 런타임오류가 계속 뜹니다 ㅜㅜ

  • kykps2
    kykps2

    런타임 오류가 뜨는데 이유를 도저히 모르겠습니다 ㅠㅠ

    CHILDRENDAY

    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    
    #define QUESIZE 100000
    
    using namespace std;
    
    int Tt, Nn, Mm;
    string Dd;
    vector<int> nums;
    vector<long long int> que;
    bool isFind;
    int cache[10001];
    int head;
    
    void INITCACHE() {
        for (int i = 0; i < 10001; i++)
            cache[i] = -1;
        nums.clear();
        que.clear();
        head = 0;
        que.resize(QUESIZE);
        nums.reserve(10);
    }
    
    void BFS(long long int num) {
    
        int namugi = num%Nn;
    
        if (namugi == Mm && num >= Nn) {
            cout << num << endl;
            isFind = true;
            return;
        }
    
        if (cache[namugi] != -1)
            return;
    
        cache[namugi] = 1;
    
        for (int i = 0; i < nums.size(); i++) {
            que[head] = num * 10 + nums[i];
            head = (head + 1) % QUESIZE;
        }
    }
    
    int main() {
    
        cin >> Tt;
        for (int ti = 0; ti < Tt; ti++) {
            INITCACHE();
            cin >> Dd >> Nn >> Mm;
            for (int i = 0; i < Dd.size(); i++) {
                int temp = Dd[i] - 48;
                nums.push_back(temp);
            }
            sort(nums.begin(), nums.end());
    
            que[head] = 0;
            head = (head + 1) % QUESIZE;
    
            int qIndex = 0;
            isFind = false;
            while (qIndex != head && !isFind) {
                BFS(que[qIndex]);
                qIndex = (qIndex + 1) % QUESIZE;
            }
    
            if (!isFind)
                cout << "IMPOSSIBLE" << endl;
        }
    }
    

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