結果
問題 | No.1083 余りの余り |
ユーザー |
|
提出日時 | 2020-06-20 16:37:32 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 92 ms / 3,000 ms |
コード長 | 824 bytes |
コンパイル時間 | 3,719 ms |
コンパイル使用メモリ | 163,692 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-03 17:25:12 |
合計ジャッジ時間 | 3,154 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define REP(i, n) for (ll i = 0; i < n; i++)#define REPR(i, n) for (ll i = n; i >= 0; i--)#define FOR(i, m, n) for (ll i = m; i < n; i++)#define FORR(i, m, n) for (ll i = m; i >= n; i--)#define REPO(i, n) for (ll i = 1; i <= n; i++)#define ll long long#define INF (ll)1 << 60#define MINF (-1 * INF)#define ALL(n) n.begin(), n.end()#define MOD 1000000007#define P pair<ll, ll>ll n, k;int main() {cin >> n >> k;vector<ll> s(n);REP(i, n){cin >> s[i];}sort(ALL(s), greater<ll>());ll ans = k % s[n - 1];REP(i, 1 << (n - 1)){ll now = k;REP(j, n - 1){if(i & (1 << j)){now %= s[j];}}ans = max(ans, now % s[n - 1]);}cout << ans << endl;}