結果
問題 |
No.2561 みんな大好きmod 998
|
ユーザー |
![]() |
提出日時 | 2023-12-02 20:15:31 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 264 ms / 4,000 ms |
コード長 | 1,747 bytes |
コンパイル時間 | 4,418 ms |
コンパイル使用メモリ | 252,408 KB |
最終ジャッジ日時 | 2025-02-18 06:18:19 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 44 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; using ll = long long; using vi = vector<int>; using vl = vector<long long>; using vs = vector<string>; using vc = vector<char>; using vb = vector<bool>; using vpii = vector<pair<int, int>>; using vpll = vector<pair<long long, long long>>; using vvi = vector<vector<int>>; using vvl = vector<vector<long long>>; using vvc = vector<vector<char>>; using vvvi = vector<vector<vector<int>>>; using pii = pair<int, int>; using vvb = vector<vector<bool>>; using Graph = vector<vector<ll>>; const ll LINF = 1001002003004005006ll; const int INF = 1001001001; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep3(i, m, n) for (int i = (m); i < (int)(n); i++) #define rrep(i, m, n) for (int i = (m); i >= (int)(n); i--) #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() template <typename T1, typename T2> inline bool chmax(T1 &a, T2 b) { return a < b && (a = b, true); } template <typename T1, typename T2> inline bool chmin(T1 &a, T2 b) { return a > b && (a = b, true); } vi dx4 = {1, 0, -1, 0}, dy4 = {0, 1, 0, -1}; vi dx8 = {1, 1, 1, 0, 0, -1, -1, -1}, dy8 = {1, 0, -1, 1, -1, 1, 0, -1}; int main() { int n, k; cin >> n >> k; vl a(n); rep(i, n) { cin >> a[i]; } vi num; rep(i, n - k) { num.push_back(0); } rep(i, k) { num.push_back(1); } ll ans = 0; do { ll s = 0; rep(i, n) { if (num[i]) { s += a[i]; } } if (s % 998244353 <= s % 998) { ans++; ans %= 998; } } while (next_permutation(all(num))); cout << ans << '\n'; return 0; }