結果
| 問題 |
No.941 商とあまり
|
| コンテスト | |
| ユーザー |
tko919
|
| 提出日時 | 2019-12-04 15:25:29 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,338 bytes |
| コンパイル時間 | 1,686 ms |
| コンパイル使用メモリ | 174,236 KB |
| 実行使用メモリ | 54,872 KB |
| 最終ジャッジ日時 | 2024-11-30 15:48:13 |
| 合計ジャッジ時間 | 137,100 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 6 |
| other | AC * 57 WA * 12 RE * 3 TLE * 32 |
ソースコード
#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
using namespace std;
//template
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define rrep(i,a,b) for(int i=(a);i>(b);i--)
#define ALL(v) (v).begin(),(v).end()
typedef long long int ll; const int inf = 0x3fffffff; const ll INF = 0x3fffffffffffffff;
template<class T> inline bool chmax(T& a,T b){ if(a<b){a=b;return 1;}return 0; }
template<class T> inline bool chmin(T& a,T b){ if(a>b){a=b;return 1;}return 0; }
//template end
int merge(int a,int b){return a*b+a+b;}
bool ans[500010]={};
int main(){
int n,x; scanf("%d%d",&n,&x);
vector<int> a(n);
rep(i,0,n)scanf("%d",&a[i]);
if(n==1){
string s;
rep(i,1,x+1)if(i==a[0])s+='1'; else s+='0';
cout<<s<<endl; return 0;
}
int base=0;
rep(i,0,n)base=merge(base,a[i]);
if(base>x){
rep(i,0,x)cout<<0; puts(""); return 0;
}
ans[base]=1; set<int> val;
rep(i,0,n)val.insert(a[i]);
rep(i,0,n)rep(j,i+1,n){
int add=merge(a[i],a[j]);
while(add<=x){val.insert(add); add+=a[i];}
add=merge(a[i],a[j]);
while(add<=x){val.insert(add); add+=a[j];}
}
for(int add:val){
int idx=base;
while(idx<=x){ans[idx]=1; idx+=add;}
}
string s;
rep(i,1,x+1)if(ans[i])s+='1'; else s+='0';
cout<<s<<endl;
return 0;
}
tko919