제출 #1097635

#제출 시각아이디문제언어결과실행 시간메모리
1097635Noname_1900Jakarta Skyscrapers (APIO15_skyscraper)C++17
100 / 100
207 ms225616 KiB
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 30000;
vector<int> chienSurTour[NMAX];
int puissanceChien[NMAX];
bool trouveTour[NMAX];
struct T {
    int tour = 0, puissance = 0;
    T(int a, int b)
    {
        tour = a;
        puissance = b;
    }
};
bool dejaVu[NMAX][NMAX];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int nbTours, nbChiens;
    cin >> nbTours >> nbChiens;
    int pos0;
    for(int i = 0; i < nbChiens; i++)
    {
        int deb, p;
        cin >> deb >> p;
        puissanceChien[i] = p;
        if(i == 0)
        {
            pos0 = deb;
        }
        chienSurTour[deb].push_back(i);
    }
    vector<T> caseMaint;
    vector<T> proCase;
    proCase.push_back(T(pos0, 0));
    int distance = -1;
    while(proCase.size())
    {
        distance++;
        caseMaint = proCase;
        proCase.clear();
        for(auto cas : caseMaint)
        {
            
            if(cas.tour >= nbTours) continue;
            if(cas.tour < 0)    continue;
            if(dejaVu[cas.tour][cas.puissance]) continue;
            dejaVu[cas.tour][cas.puissance] = true;
            proCase.push_back(T(cas.tour - cas.puissance, cas.puissance));
            proCase.push_back(T(cas.tour + cas.puissance, cas.puissance));
            if(!trouveTour[cas.tour])
            {
                trouveTour[cas.tour] = true;
                for(int c : chienSurTour[cas.tour])
                {
                    if(c == 1)  
                    {
                        cout << distance;
                        return 0;
                    }

                    proCase.push_back(T(cas.tour - puissanceChien[c], puissanceChien[c]));
                    proCase.push_back(T(cas.tour + puissanceChien[c], puissanceChien[c]));
                    
                }
            }
        }
    }
    cout << -1;
}

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:11:14: warning: 'pos0' may be used uninitialized in this function [-Wmaybe-uninitialized]
   11 |         tour = a;
      |         ~~~~~^~~
skyscraper.cpp:22:9: note: 'pos0' was declared here
   22 |     int pos0;
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...