結果
問題 |
No.1083 余りの余り
|
ユーザー |
![]() |
提出日時 | 2020-06-21 18:27:32 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,138 ms / 3,000 ms |
コード長 | 818 bytes |
コンパイル時間 | 893 ms |
コンパイル使用メモリ | 100,008 KB |
実行使用メモリ | 175,588 KB |
最終ジャッジ日時 | 2024-07-03 18:11:16 |
合計ジャッジ時間 | 9,697 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
#include<iostream> #include<stdio.h> #include<algorithm> #include<vector> #include<string.h> #include<math.h> #include<map> #include<iomanip> #include<queue> const long long INF = 1e6+7; const long long MOD = 1e9+7; const double PI=acos(-1); using namespace std; int main(){ int n,k; cin >> n >> k; vector<int> a(n); for(int i=0;i<n;i++){ cin >> a[i]; } sort(a.begin(),a.end(),greater<int>()); int mi=a[a.size()-1]; a.pop_back(); long long ans=-1; vector<vector<int>>bit(pow(2,n)); for(long long i=0;i<pow(2,n);i++){ for(int long long j=1;j<pow(2,n);j*=2){ if(j&i)bit[i].push_back(1); else bit[i].push_back(0); } long long temp=k; for(int j=0;j<bit[i].size();j++){ if(bit[i][j]==1){ temp%=a[j]; } } temp%=mi; ans=max(ans,temp); } cout << ans << endl; return 0; }