結果
問題 | No.1238 選抜クラス |
ユーザー |
![]() |
提出日時 | 2024-04-08 18:20:53 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
MLE
|
実行時間 | - |
コード長 | 2,319 bytes |
コンパイル時間 | 2,146 ms |
コンパイル使用メモリ | 201,660 KB |
最終ジャッジ日時 | 2025-02-20 23:12:46 |
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 MLE * 14 |
ソースコード
#include <bits/stdc++.h>using namespace std;using ll = long long;const ll modc = 1e9+7;class mint {ll x;public:mint(ll x=0) : x((x%modc+modc)%modc) {}mint operator-() const { return mint(-x);}mint& operator+=(const mint& a) {if ((x += a.x) >= modc) x -= modc;return *this;}mint& operator-=(const mint& a) {if ((x += modc-a.x) >= modc) x -= modc;return *this;}mint& operator*=(const mint& a) {(x *= a.x) %= modc;return *this;}mint operator+(const mint& a) const {mint res(*this);return res+=a;}mint operator-(const mint& a) const {mint res(*this);return res-=a;}mint operator*(const mint& a) const {mint res(*this);return res*=a;}mint pow(ll t) const {if (!t) return 1;mint a = pow(t>>1);a *= a;if (t&1) a *= *this;return a;}mint inv() const {return pow(modc-2);}mint& operator/=(const mint& a){ return (*this) *= a.inv();}mint operator/(const mint& a) const {mint res(*this);return res/=a;}bool operator == (const mint& a) const{ return x == a.x;}bool operator != (const mint& a) const{ return x != a.x;}friend ostream& operator<<(ostream& os, const mint& m){os << m.x;return os;}friend istream& operator>>(istream& ip, mint &m) {ll t;ip >> t;m = mint(t);return ip;}ll val(){ return x;}};int main(){cin.tie(nullptr);ios_base::sync_with_stdio(false);ll N, M, K, A;cin >> N >> K;M = N*100;//dp(i, j, k) = i番目まででj人選んで総和がkであるものvector dp(N+1, vector(N+1, vector<mint>(M+1)));dp[0][0][0] = 1;for (int i=1; i<=N; i++){cin >> A;for (int j=0; j<=N; j++){for (int k=0; k<=M; k++){dp[i][j][k] += dp[i-1][j][k];if (j>=1 && k-A>=0) dp[i][j][k] += dp[i-1][j-1][k-A];}}}mint ans=0;//S/X>=K//S>=K*Xfor (int X=1; X<=N; X++){for (int S=0; S<=M; S++){if (S>=X*K) ans += dp[N][X][S];}}cout << ans << endl;return 0;}