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
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
WA × 3
WA × 4
RE × 14
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