답안 #255405

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
255405 2020-07-31T21:36:07 Z hhh07 악어의 지하 도시 (IOI11_crocodile) C++14
컴파일 오류
0 ms 0 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <utility>
#include <set>
#include <cmath>
#include <climits>
#include <cstring>
#include "crocodile.h"
 
using namespace std;
 
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> ii;

vector<vector<ii>> adjList(100007, vector<ii>());
const INF = 1e9 + 7;
int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]){
    for (ll i = 0; i < m; i++){
        adjList[r[i][0]].push_back(make_pair(r[i][1], l[i]));
        adjList[r[i][1]].push_back(make_pair(r[i][0], l[i]));
    }
    
    vector<ii> t(n, {INF, INF});
    priority_queue<ii, vector<ii>, greater<ii>> pq;
    for (ll i = 0; i < k; i++){
        t[p[i]] = {0, 0};
        pq.push({0, p[i]});
    }
    
    while(!pq.empty()){
        auto curr = pq.top();
        pq.pop();
        if (t[curr.second].first != curr.first)
            continue;
        for (ll i = 0; i < adjList[curr.second].size(); i++){
            ll d = adjList[curr.second][i].second, idx = adjList[curr.second][i].first;
            ll val = curr.first + d;

            if (val <= t[idx].second){
                t[idx].first = t[idx].second;
                t[idx].second = val;
                pq.push({t[idx].first, idx});
            }
            else if (val < t[idx].first){
                t[idx].first = val;
                pq.push({t[idx].first, idx});
            }
            
        }
    }
    
    
    return t[0].first;
}

Compilation message

crocodile.cpp:19:7: error: 'INF' does not name a type; did you mean 'SING'?
 const INF = 1e9 + 7;
       ^~~
       SING
crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:26:22: error: 'INF' was not declared in this scope
     vector<ii> t(n, {INF, INF});
                      ^~~
crocodile.cpp:26:22: note: suggested alternative: 'SING'
     vector<ii> t(n, {INF, INF});
                      ^~~
                      SING
crocodile.cpp:26:31: error: no matching function for call to 'std::vector<std::pair<long long int, long long int> >::vector(int&, <brace-enclosed initializer list>)'
     vector<ii> t(n, {INF, INF});
                               ^
In file included from /usr/include/c++/7/vector:64:0,
                 from crocodile.cpp:2:
/usr/include/c++/7/bits/stl_vector.h:411:2: note: candidate: template<class _InputIterator, class> std::vector<_Tp, _Alloc>::vector(_InputIterator, _InputIterator, const allocator_type&)
  vector(_InputIterator __first, _InputIterator __last,
  ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:411:2: note:   template argument deduction/substitution failed:
/usr/include/c++/7/bits/stl_vector.h:383:7: note: candidate: std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(initializer_list<value_type> __l,
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:383:7: note:   no known conversion for argument 1 from 'int' to 'std::initializer_list<std::pair<long long int, long long int> >'
/usr/include/c++/7/bits/stl_vector.h:358:7: note: candidate: std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(vector&& __rv, const allocator_type& __m)
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:358:7: note:   no known conversion for argument 1 from 'int' to 'std::vector<std::pair<long long int, long long int> >&&'
/usr/include/c++/7/bits/stl_vector.h:348:7: note: candidate: std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&, const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(const vector& __x, const allocator_type& __a)
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:348:7: note:   no known conversion for argument 1 from 'int' to 'const std::vector<std::pair<long long int, long long int> >&'
/usr/include/c++/7/bits/stl_vector.h:344:7: note: candidate: std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >]
       vector(vector&& __x) noexcept
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:344:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/7/bits/stl_vector.h:326:7: note: candidate: std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >]
       vector(const vector& __x)
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:326:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/7/bits/stl_vector.h:295:7: note: candidate: std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const value_type&, const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, long long int>; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(size_type __n, const value_type& __value,
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:295:7: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<long long int, long long int>&}'
/usr/include/c++/7/bits/stl_vector.h:283:7: note: candidate: std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(size_type __n, const allocator_type& __a = allocator_type())
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:283:7: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const allocator_type& {aka const std::allocator<std::pair<long long int, long long int> >&}'
/usr/include/c++/7/bits/stl_vector.h:270:7: note: candidate: std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::pair<long long int, long long int> >]
       vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:270:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/7/bits/stl_vector.h:259:7: note: candidate: std::vector<_Tp, _Alloc>::vector() [with _Tp = std::pair<long long int, long long int>; _Alloc = std::allocator<std::pair<long long int, long long int> >]
       vector()
       ^~~~~~
/usr/include/c++/7/bits/stl_vector.h:259:7: note:   candidate expects 0 arguments, 2 provided
crocodile.cpp:38:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (ll i = 0; i < adjList[curr.second].size(); i++){
                        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~