Submission #956055

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
9560552024-03-31 23:57:18frodakcinFestivals in JOI Kingdom 2 (JOI23_festival2)C++17
100 / 100
3945 ms1996 KiB
#include <iostream>
#include <vector>
#include <cassert>
using ll = long long;
int MOD = 998244353;
#ifdef LOCAL
template<typename T>
struct vector: std::vector<T> {
template<typename... V> vector(V&&... args): std::vector<T>(std::forward<V>(args)...) {}
T& operator [](size_t idx) {return vector::at(idx);}
T const& operator[](size_t idx) const {return vector::at(idx);}
};
#else
using std::vector;
#endif
using std::pair, std::cin, std::cout;
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) std::begin(x), std::end(x)
#define sz(x) (int)(x).size()
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
ll euclid(ll a, ll b, ll &x, ll &y) {
if (!b) return x = 1, y = 0, a;
ll d = euclid(b, a % b, y, x);
return y -= a/b * x, d;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

festival2.cpp: In function 'std::vector<mint> multiply(std::vector<mint>&&, std::vector<mint>&&)':
festival2.cpp:68:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |   for(int i = 0;i < a.size(); ++i)
      |                 ~~^~~~~~~~~~
festival2.cpp:69:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |    for(int j = 0;j < b.size(); ++j)
      |                  ~~^~~~~~~~~~
festival2.cpp:88:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |   for(int i = 0;i + m < a.size(); ++i) a[i] += a[i+m], b[i] += b[i+m];
      |                 ~~~~~~^~~~~~~~~~
festival2.cpp:94:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   94 |   for(int i = 0;i < M.size(); ++i)
      |                 ~~^~~~~~~~~~
festival2.cpp:97:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   97 |    if(i < H.size()) M[i] -= H[i];
      |       ~~^~~~~~~~~~
festival2.cpp:102:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  102 |   for(int i = 0;i < M.size() && i + m < fin_sz; ++i) ans[i+m] += M[i];
      |                 ~~^~~~~~~~~~
festival2.cpp:102:39: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
  102 |   for(int i = 0;i < M.size() && i + m < fin_sz; ++i) ans[i+m] += M[i];
      |                                 ~~~~~~^~~~~~~~
festival2.cpp:103:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<mint>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |   for(int i = 0;i < H.size() && i + 2*m < fin_sz; ++i) ans[i+2*m] += H[i];
      |                 ~~^~~~~~~~~~
festival2.cpp:103:41: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
  103 |   for(int i = 0;i < H.size() && i + 2*m < fin_sz; ++i) ans[i+2*m] += H[i];
      |                                 ~~~~~~~~^~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...