Submission #07501


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<bits/stdc++.h>
using namespace std;
#define INF 0xfffffff
typedef pair <int,int> P;
int n,k,cnt=0;
int data[26];
bool dfs(){
deque <P> que;
que.push_back( P(0,0) );
while(!que.empty()){
//キューから取り出す
P p=que.front();que.pop_front();
int now=p.first; //今の値
int sum=p.second; //足すdataのindex
if(now==k) return true;
if(data[sum]==INF) continue;
que.push_back( P(now,sum+1) );
que.push_back( P(now+data[sum],sum+1) );
}
return false;
}
int main()
{
cin>>n>>k;
fill(data,data+26,INF);
for(int i=0;i<n;i++) cin>>data[i];
if(dfs()) cout<<"OK"<<endl;
else cout<<"NG"<<endl;
return 0;
}

ステータス

項目 データ
問題 0064 - 足し算できる?
ユーザー名 ei1538
投稿日時 2016-07-22 17:30:06
言語 C++11
状態 Accepted
得点 5
ソースコード長 713 Byte
最大実行時間 32 ms
最大メモリ使用量 9104 KB

セット

セット 得点 Cases
1 ALL 5 / 5 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
AddInput1.txt AC 12 ms 472 KB
1
AddInput2.txt AC 13 ms 444 KB
1
AddInput3.txt AC 11 ms 424 KB
1
AddInput4.txt AC 32 ms 9104 KB
1
AddInput5.txt AC 13 ms 584 KB
1
AddInput6.txt AC 12 ms 552 KB
1