제출 #108885

#제출 시각아이디문제언어결과실행 시간메모리
108885kuroniJakarta Skyscrapers (APIO15_skyscraper)C++17
컴파일 에러
0 ms0 KiB

    skyscraper

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <vector>
    #include <algorithm>
    #define fi first
    #define se second
    using namespace std;
     
    const int N = 30005, D = 180, MX = 5E5 + 5, INF = 1E9 + 7;
     
    int n, m, d, b, p, st, en, dis[N][D];
    vector<int> dif[N];
    vector<pair<int, int>> ve[MX];
     
    void mini(pair<int, int> u, int v)
    {
        if (dis[u.fi][u.se] > v)
        {
            dis[u.fi][u.se] = v;
            ve[v].push_back(u);
        }
    }
     
    void dijkstra()
    {
        for (int i = 0; i < n; i++)
            for (int j = 0; j < d; j++)
                dis[i][j] = INF;
        dis[st][0] = 0; ve[0].push_back({st, 0});
        for (int i = 0; i < MX; i++)
            while (!ve[i].empty())
            {
                pair<int, int> u = ve[i].back(); ve[i].pop_back();
                if (u.se == 0)
                {
                    for (int &v : dif[u.fi])
                    {
                        if (v < d)
                            mini({u.fi, v}, i);
                        else
                            for (int j = u.fi % v; j < n; j += v)
                                mini({j, 0}, i + abs(u.fi - j) / v);
                    }
                }
                else
                {
                    mini({u.fi, 0}, i);
                    if (u.fi + u.se < n)
                        mini({u.fi + u.se, u.se}, i + 1);
                    if (u.fi - u.se >= 0)
                        mini({u.fi - u.se, u.se}, i + 1);
                }
            }
        printf("%d\n", dis[en][0] == INF ? -1 : dis[en][0]);
    }
     
    int main()
    {
        scanf("%d%d", &n, &m);
        d = sqrt(n - 1) + 1;
        for (int i = 0; i < m; i++)
        {
            scanf("%d%d", &b, &p);
            if (i == 0)
                st = b;
            else if (i == 1)
                en = b;
            dif[b].push_back(p);
        }
        for (int i = 0; i < n; i++)
        {
            sort(dif[i].begin(), dif[i].end());
            dif[i].erase(unique(dif[i].begin(), dif[i].end()), dif[i].end());
        }
        dijkstra();
    }

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

skyscraper.cpp:2:5: error: 'skyscraper' does not name a type
     skyscraper
     ^~~~~~~~~~
In file included from /usr/include/c++/7/iosfwd:40:0,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/bits/postypes.h:98:11: error: 'ptrdiff_t' does not name a type
   typedef ptrdiff_t streamsize; // Signed integral type
           ^~~~~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:120:31: error: declaration of 'operator new' as non-function
 void* operator new(std::size_t) _GLIBCXX_THROW (std::bad_alloc)
                               ^
/usr/include/c++/7/new:120:25: error: 'size_t' is not a member of 'std'
 void* operator new(std::size_t) _GLIBCXX_THROW (std::bad_alloc)
                         ^~~~~~
/usr/include/c++/7/new:120:25: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:122:33: error: declaration of 'operator new []' as non-function
 void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
                                 ^
/usr/include/c++/7/new:122:27: error: 'size_t' is not a member of 'std'
 void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
                           ^~~~~~
/usr/include/c++/7/new:122:27: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:129:29: error: 'std::size_t' has not been declared
 void operator delete(void*, std::size_t) _GLIBCXX_USE_NOEXCEPT
                             ^~~
/usr/include/c++/7/new:131:31: error: 'std::size_t' has not been declared
 void operator delete[](void*, std::size_t) _GLIBCXX_USE_NOEXCEPT
                               ^~~
/usr/include/c++/7/new:134:25: error: declaration of 'operator new' as non-function
 void* operator new(std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT
                         ^~~~~~
/usr/include/c++/7/new:134:25: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:134:25: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:134:33: error: expected primary-expression before 'const'
 void* operator new(std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT
                                 ^~~~~
/usr/include/c++/7/new:136:27: error: declaration of 'operator new []' as non-function
 void* operator new[](std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT
                           ^~~~~~
/usr/include/c++/7/new:136:27: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:136:27: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:136:35: error: expected primary-expression before 'const'
 void* operator new[](std::size_t, const std::nothrow_t&) _GLIBCXX_USE_NOEXCEPT
                                   ^~~~~
/usr/include/c++/7/new:143:25: error: declaration of 'operator new' as non-function
 void* operator new(std::size_t, std::align_val_t)
                         ^~~~~~
/usr/include/c++/7/new:143:25: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:143:25: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:143:49: error: expected primary-expression before ')' token
 void* operator new(std::size_t, std::align_val_t)
                                                 ^
/usr/include/c++/7/new:145:25: error: declaration of 'operator new' as non-function
 void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&)
                         ^~~~~~
/usr/include/c++/7/new:145:25: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:145:25: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:145:49: error: expected primary-expression before ',' token
 void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&)
                                                 ^
/usr/include/c++/7/new:145:51: error: expected primary-expression before 'const'
 void* operator new(std::size_t, std::align_val_t, const std::nothrow_t&)
                                                   ^~~~~
/usr/include/c++/7/new:151:27: error: declaration of 'operator new []' as non-function
 void* operator new[](std::size_t, std::align_val_t)
                           ^~~~~~
/usr/include/c++/7/new:151:27: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:151:27: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:151:51: error: expected primary-expression before ')' token
 void* operator new[](std::size_t, std::align_val_t)
                                                   ^
/usr/include/c++/7/new:153:27: error: declaration of 'operator new []' as non-function
 void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&)
                           ^~~~~~
/usr/include/c++/7/new:153:27: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:153:27: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:153:51: error: expected primary-expression before ',' token
 void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&)
                                                   ^
/usr/include/c++/7/new:153:53: error: expected primary-expression before 'const'
 void* operator new[](std::size_t, std::align_val_t, const std::nothrow_t&)
                                                     ^~~~~
/usr/include/c++/7/new:160:29: error: 'std::size_t' has not been declared
 void operator delete(void*, std::size_t, std::align_val_t)
                             ^~~
/usr/include/c++/7/new:162:31: error: 'std::size_t' has not been declared
 void operator delete[](void*, std::size_t, std::align_val_t)
                               ^~~
/usr/include/c++/7/new:168:32: error: declaration of 'operator new' as non-function
 inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
                                ^~~~~~
/usr/include/c++/7/new:168:32: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:168:32: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:168:40: error: expected primary-expression before 'void'
 inline void* operator new(std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
                                        ^~~~
/usr/include/c++/7/new:170:34: error: declaration of 'operator new []' as non-function
 inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
                                  ^~~~~~
/usr/include/c++/7/new:170:34: error: 'size_t' is not a member of 'std'
/usr/include/c++/7/new:170:34: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/exception_ptr.h:40:0,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/new:170:42: error: expected primary-expression before 'void'
 inline void* operator new[](std::size_t, void* __p) _GLIBCXX_USE_NOEXCEPT
                                          ^~~~
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/nested_exception.h:40,
                 from /usr/include/c++/7/exception:143,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/type_traits:362:26: error: 'std::size_t' has not been declared
   template<typename _Tp, std::size_t _Size>
                          ^~~
/usr/include/c++/7/type_traits:363:25: error: '_Size' was not declared in this scope
     struct is_array<_Tp[_Size]>
                         ^~~~~
/usr/include/c++/7/type_traits:363:31: error: template argument 1 is invalid
     struct is_array<_Tp[_Size]>
                               ^
/usr/include/c++/7/type_traits:561:42: error: 'nullptr_t' is not a member of 'std'
     struct __is_null_pointer_helper<std::nullptr_t>
                                          ^~~~~~~~~
/usr/include/c++/7/type_traits:561:42: note: suggested alternative:
In file included from /usr/include/c++/7/bits/cxxabi_init_exception.h:38:0,
                 from /usr/include/c++/7/bits/exception_ptr.h:38,
                 from /usr/include/c++/7/exception:142,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:444:29: note:   'nullptr_t'
   typedef decltype(nullptr) nullptr_t;
                             ^~~~~~~~~
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/nested_exception.h:40,
                 from /usr/include/c++/7/exception:143,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/type_traits:561:51: error: template argument 1 is invalid
     struct __is_null_pointer_helper<std::nullptr_t>
                                                   ^
/usr/include/c++/7/type_traits:1464:37: error: 'size_t' is not a member of 'std'
     : public integral_constant<std::size_t, __alignof__(_Tp)> { };
                                     ^~~~~~
/usr/include/c++/7/type_traits:1464:37: note: suggested alternative:
In file included from /usr/include/wchar.h:51:0,
                 from /usr/include/c++/7/cwchar:44,
                 from /usr/include/c++/7/bits/postypes.h:40,
                 from /usr/include/c++/7/iosfwd:40,
                 from /usr/include/c++/7/ios:38,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:216:23: note:   'size_t'
 typedef __SIZE_TYPE__ size_t;
                       ^~~~~~
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/nested_exception.h:40,
                 from /usr/include/c++/7/exception:143,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from skyscraper.cpp:4:
/usr/include/c++/7/type_traits:1464:61: error: template argument 1 is invalid
     : public integral_constant<std::size_t, __alignof__(_Tp)> { };
                                                             ^
/usr/include/c++/7/type_traits:1464:61: note: invalid template non-type parameter
/usr/include/c++/7/type_traits:1469:37: error: 'size_t' is no