QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#427760#8780. Training, Round 2ucup-team025#Compile Error//C++1426.6kb2024-06-01 15:30:022024-06-01 15:30:03

Details

answer.code:42:39: error: ‘optional’ in namespace ‘std’ does not name a template type
   42 | template<typename T> using Opt = std::optional<T>;
      |                                       ^~~~~~~~
answer.code:42:34: note: ‘std::optional’ is only available from C++17 onwards
   42 | template<typename T> using Opt = std::optional<T>;
      |                                  ^~~
answer.code:43:44: error: ‘span’ in namespace ‘std’ does not name a template type
   43 | template<typename... Ts> using Span = std::span<Ts...>;
      |                                            ^~~~
answer.code:43:39: note: ‘std::span’ is only available from C++20 onwards
   43 | template<typename... Ts> using Span = std::span<Ts...>;
      |                                       ^~~
answer.code:50:20: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   50 | constexpr auto ABS(auto x) { return (x >= 0 ? x : -x); }
      |                    ^~~~
answer.code:51:31: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   51 | constexpr auto makePair(const auto& x1, const auto& x2) { return std::make_pair(x1, x2); }
      |                               ^~~~
answer.code:51:47: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   51 | constexpr auto makePair(const auto& x1, const auto& x2) { return std::make_pair(x1, x2); }
      |                                               ^~~~
answer.code:52:30: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   52 | constexpr auto makeTup(const auto&... xs) { return std::make_tuple(xs...); }
      |                              ^~~~
answer.code:53:61: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   53 | template<typename T> constexpr auto chmin(T& x, const T& y, auto comp) -> bool { return (comp(y, x) ? (x = y, true) : false); }
      |                                                             ^~~~
answer.code:55:61: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   55 | template<typename T> constexpr auto chmax(T& x, const T& y, auto comp) -> bool { return (comp(x, y) ? (x = y, true) : false); }
      |                                                             ^~~~
answer.code:69:80: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   69 | template<typename T> constexpr auto powerMonoid(const T& x, i64 N, const T& e, auto mul) -> T
      |                                                                                ^~~~
answer.code: In function ‘constexpr u64 powerMod(u64, i64, u64)’:
answer.code:81:38: warning: temporary of non-literal type ‘powerMod(u64, i64, u64)::<lambda(u64, u64)>’ in a constant expression [-Winvalid-constexpr]
   81 |     return powerMonoid(x, N, u64{1}, [&](u64 x, u64 y) {
      |                                      ^~~~~~~~~~~~~~~~~~~
   82 |         if (mod <= (u64)LIMMAX<u32>) {
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   83 |             return x * y % mod;
      |             ~~~~~~~~~~~~~~~~~~~       
   84 |         } else {
      |         ~~~~~~~~                      
   85 |             return (u64)((u128)x * y % mod);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   86 |         }
      |         ~                             
   87 |     });
      |     ~                                 
answer.code:81:40: note: ‘powerMod(u64, i64, u64)::<lambda(u64, u64)>’ is not literal because:
   81 |     return powerMonoid(x, N, u64{1}, [&](u64 x, u64 y) {
      |                                        ^
cc1plus: note:   ‘powerMod(u64, i64, u64)::<lambda(u64, u64)>’ is a closure type, which is only literal in C++17 and later
answer.code: At global scope:
answer.code:89:16: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   89 | auto seqConcat(auto& xs1, const auto& xs2) -> void { std::ranges::copy(xs2, std::back_inserter(xs1)); }
      |                ^~~~
answer.code:89:33: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   89 | auto seqConcat(auto& xs1, const auto& xs2) -> void { std::ranges::copy(xs2, std::back_inserter(xs1)); }
      |                                 ^~~~
answer.code: In function ‘void seqConcat(auto:8&, const auto:9&)’:
answer.code:89:59: error: ‘std::ranges’ has not been declared
   89 | auto seqConcat(auto& xs1, const auto& xs2) -> void { std::ranges::copy(xs2, std::back_inserter(xs1)); }
      |                                                           ^~~~~~
answer.code: At global scope:
answer.code:90:26: warning: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’
   90 | auto seqConcatCopy(const auto& xs1, const auto& xs2)
      |                          ^...