Submission #1356393
Source Code Expand
#include <iostream>
#include <cstring>
#include <bitset>
#include <cstdio>
using namespace std;
typedef long long ll;
const int maxn = 5010;
bitset<maxn> pre[maxn],suf[maxn],tmp;
int a[maxn];
int sum[maxn];
bool check(int x, int lb, int ub)
{
for (int i=lb;i<=ub;i++)
if (suf[x][i]) return true;
return false;
}
int main()
{
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
int n,k;
scanf("%d%d",&n,&k);
ll sum = 0;
for (int i=1;i<=n;i++) scanf("%d",&a[i]), sum += (ll)a[i];
if (sum < k)
{
printf("%d\n",n);
return 0;
}
pre[0].reset();
pre[0][0] = 1;
for (int i=1;i<=n;i++)
{
tmp.reset();
if (a[i] < maxn) tmp = pre[i-1] << a[i];
pre[i] = pre[i-1] | tmp;
}
suf[n+1].reset();
suf[n+1][0] = 1;
for (int i=n;i>=1;i--)
{
tmp.reset();
if (a[i] < maxn) tmp = suf[i+1] << a[i];
suf[i] = suf[i+1] | tmp;
}
int cnt = 0;
for (int i=1;i<=n;i++)
{
int lb = max(k-a[i],1), ub = k-1;
bool exist = false;
for (int sum1=0;sum1<=ub;sum1++)
{
if (!pre[i-1][sum1]) continue;
int lb2 = max(lb-sum1,1), ub2 = ub-sum1;
if (ub2 < lb2) continue;
if (check(i+1,lb2,ub2))
{
exist = true;
break;
}
}
if (exist) cnt++;
}
printf("%d\n",cnt);
return 0;
}
Submission Info
Submission Time
2017-06-16 15:26:40+0900
Task
C - Go Home
User
Gabriel
Language
C++14 (GCC 5.4.1)
Score
0
Code Size
1313 Byte
Status
RE
Exec Time
688 ms
Memory
2304 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:26:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&n,&k);
^
./Main.cpp:28:59: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
for (int i=1;i<=n;i++) scanf("%d",&a[i]), sum += (ll)a[i];
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
0 / 200
Status
Set Name
Test Cases
Sample
0_000.txt, 0_001.txt, 0_002.txt
All
0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt
Case Name
Status
Exec Time
Memory
0_000.txt
WA
2 ms
2304 KB
0_001.txt
WA
2 ms
2304 KB
0_002.txt
WA
2 ms
2304 KB
1_003.txt
RE
678 ms
256 KB
1_004.txt
RE
679 ms
256 KB
1_005.txt
WA
2 ms
2304 KB
1_006.txt
RE
680 ms
256 KB
1_007.txt
RE
681 ms
256 KB
1_008.txt
RE
679 ms
256 KB
1_009.txt
RE
678 ms
256 KB
1_010.txt
RE
678 ms
256 KB
1_011.txt
RE
677 ms
256 KB
1_012.txt
RE
678 ms
256 KB
1_013.txt
RE
684 ms
256 KB
1_014.txt
RE
688 ms
256 KB
1_015.txt
RE
678 ms
256 KB
1_016.txt
RE
675 ms
256 KB
1_017.txt
RE
676 ms
256 KB