結果
問題 | No.2561 みんな大好きmod 998 |
ユーザー |
|
提出日時 | 2023-12-02 15:07:51 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,654 ms / 4,000 ms |
コード長 | 2,604 bytes |
コンパイル時間 | 1,191 ms |
コンパイル使用メモリ | 117,092 KB |
最終ジャッジ日時 | 2025-02-18 04:16:43 |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 44 |
ソースコード
//(・ω・)#include <stdio.h>#include <iostream> // cout, endl, cin#include <string> // string, to_string, atoi#include <vector> // vector#include <algorithm> // min, max, swap, sort, reverse, lower_bound, upper_bound#include <utility> // pair, make_pair#include <tuple> // tuple, make_tuple#include <cstdint> // int64_t, int*_t#include <cstdio> // printf#include <map> // map#include <queue> // queue, priority_queue#include <set> // set#include <stack> // stack#include <deque> // deque#include <unordered_map> // unordered_map#include <unordered_set> // unordered_set#include <bitset> // bitset#include <cctype> // isupper, islower, isdigit, toupper, tolower#include <math.h>#include <iomanip> //setprecision#include <limits>#include <sstream> //istringstream#include <stdlib.h>#include <list>#include <iterator>//std::advance()using namespace std;using ll = long long;using ull = unsigned long long;using ld = long double;#define SZ(x) ((int)(x).size());#define vec vectortemplate <class T>using v = vector<T>;template <class T>using vv = v< v<T> >;template <class T>using vvv = v< vv<T> >;#define el '\n'#define vl v<ll>#define vvl vv<ll>#define pl pair<ll, ll>#define repab(i, a, b) for(ll i = a; a < (ll)(b); ++i)#define rep(i, n) for(ll i = 0; i < (ll)(n); ++i)#define rep1(i, n) for(ll i = 1; i <= (ll)(n); ++i)#define rrep(i, n) for(ll i = ((ll)(n) - 1); i >= 0; --i)#define rrep1(i, n) for(ll i = ((ll)(n)); i > 0; --i)#define YN(x) cout << ((x) ? "YES\n" : "NO\n");#define Yn(x) cout << ((x) ? "Yes\n" : "No\n");#define yn(x) cout << ((x) ? "yes\n" : "no\n");#define COUT(x) cout << (x) << el;const double pi = 3.141592653589793238;const int inf = 1073741823;const ll infl = 1LL << 60;ll gcd(ll a, ll b){return b ? gcd(b, a % b) : a;}int dx[4] = {1, 0, -1, 0};int dy[4] = {0, 1, 0, -1};int main(){int n,k;cin >> n >> k;vector<long long> a(n);const long long mod = 998244353;for(int i = 0; i < n; ++i){cin >> a[i];}long long count = 0;for(long long i = 0; i < (1 << n); ++i){long long mod998 = 0;long long mod998244353 = 0;if(bitset<28>(i).count() != k) continue;for(long long j = 0; j < n; ++j){if(i & (1 << j)){mod998 += (a[j] % 998);mod998 %= 998;mod998244353 += a[j];mod998244353 %= 998244353;}}if(mod998244353 <= mod998){count++;count %= 998;}}cout << count << endl;return 0;}