Submission #1178211
Source Code Expand
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<vector>
#include<algorithm>
typedef long long int ll;
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define REP(i,n) for (int i=0;i<(n);i++)
#define EREP(i,n) for (int i=1;i<=(n);i++)
#define EVEL 1
#ifndef EVEL
#define DEB(X) cout << #X << ":" <<X<<" " ;
#define TF(f) f ? cout<<"true " : cout<<"false ";
#define END cout<<"\n";
#else
#define DEB(X) {X;}
#define TF(f) {f;}
#define END {}
#endif
const int MOD = 1000000007;
const int INF = 1000000;
#define NMAX 5000
#define MAX 10
ll sum[NMAX+1],temp,buff=0;
int N,K,ans=0;
int A[100010];
int count=0;
bool dp[NMAX+10][NMAX+10],dp1[NMAX+10][NMAX+10];
bool vis[NMAX+10][NMAX+10],vis1[NMAX+10][NMAX+10];
int low=0,high,mid;
bool dfs(ll x,ll y){
// DEB(x)DEB(y)END
if(y<0)return false;
if(y==0){return true;}
if(vis[x][y]){
return dp[x][y];
}else vis[x][y]=true;
if(x==N){dp[x][y]=false;/*DEB(dp[x][y])DEB(x)DEB(y)END*/ return dp[x][y];}
if(dfs(x+1,y)||dfs(x+1,y-A[x])){
dp[x][y]=true;
}else dp[x][y]=false;
//DEB(dp[x][y])DEB(x)DEB(y)END
return dp[x][y];
}
bool front(ll x,ll y){
if(y<0)return false;
if(x<0){
//DEB(dp1[x][y])DEB(x)DEB(y)END
if(x==-1&&y==0)return true;
else return false;
}
if(vis1[x][y]){
return dp1[x][y];
}else vis1[x][y]=true;
if(y==0){
dp1[x][y]=true; //DEB(dp1[x][y])DEB(x)DEB(y)END
return dp1[x][y];
}
if(front(x-1,y)||front(x-1,y-A[x])){
dp1[x][y]=true;
}else dp1[x][y]=false;
//DEB(dp1[x][y])DEB(x)DEB(y)END
return dp1[x][y];
}
int main(){
scanf("%d%d",&N,&K);
ans=N;
REP(i,N){scanf("%d",&A[i]);}
sort(A,A+N);
// high=N-1;
REP(i,N){
bool m=false;
FOR(j,0,K+1){
if(j<0)j=0;
//if(front(i,j)) m=true;
FOR(k,K-A[i]-j,K+1){
if(k<0)k=0;
if(j+k>=K)break;
DEB(i)DEB(j)DEB(k)
TF(front(i,j))
TF(dfs(i,k))
TF(dfs(i,k)&&front(i,j))
END
if(dfs(i+1,k)&&front(i-1,j)){
ans=i;
m=true;
break;
}
}
if(m)break;
}
if(m)break;
}
cout<<ans<<endl;
}
Submission Info
Submission Time
2017-03-24 18:23:03+0900
Task
D - No Need
User
Nafmo2
Language
C++14 (GCC 5.4.1)
Score
300
Code Size
3059 Byte
Status
TLE
Exec Time
2103 ms
Memory
98816 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:79:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&N,&K);
^
./Main.cpp:81:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
REP(i,N){scanf("%d",&A[i]);}
^
Judge Result
Set Name
Sample
Subtask
All
Score / Max Score
0 / 0
300 / 300
0 / 300
Status
Set Name
Test Cases
Sample
0_000.txt, 0_001.txt, 0_002.txt
Subtask
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, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.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, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 2_026.txt, 2_027.txt, 2_028.txt, 2_029.txt, 2_030.txt, 2_031.txt, 2_032.txt, 2_033.txt, 2_034.txt, 2_035.txt, 2_036.txt, 2_037.txt, 2_038.txt, 2_039.txt, 2_040.txt, 2_041.txt, 2_042.txt, 2_043.txt, 2_044.txt, 2_045.txt, 2_046.txt, 2_047.txt, 2_048.txt, 2_049.txt, 2_050.txt
Case Name
Status
Exec Time
Memory
0_000.txt
AC
3 ms
8448 KB
0_001.txt
AC
3 ms
8448 KB
0_002.txt
AC
3 ms
8448 KB
1_003.txt
AC
2 ms
4352 KB
1_004.txt
AC
2 ms
4352 KB
1_005.txt
AC
2 ms
4352 KB
1_006.txt
AC
5 ms
10496 KB
1_007.txt
AC
3 ms
10496 KB
1_008.txt
AC
4 ms
12544 KB
1_009.txt
AC
10 ms
16384 KB
1_010.txt
AC
2 ms
4352 KB
1_011.txt
AC
2 ms
4352 KB
1_012.txt
AC
2 ms
4352 KB
1_013.txt
AC
2 ms
4352 KB
1_014.txt
AC
2 ms
4352 KB
1_015.txt
AC
4 ms
12544 KB
1_016.txt
AC
4 ms
8448 KB
1_017.txt
AC
3 ms
8448 KB
1_018.txt
AC
4 ms
8448 KB
1_019.txt
AC
6 ms
12544 KB
1_020.txt
AC
4 ms
12544 KB
1_021.txt
AC
4 ms
12544 KB
1_022.txt
AC
4 ms
12544 KB
1_023.txt
AC
4 ms
12544 KB
1_024.txt
AC
6 ms
15488 KB
1_025.txt
AC
8 ms
15488 KB
2_026.txt
AC
2 ms
4352 KB
2_027.txt
AC
18 ms
10624 KB
2_028.txt
AC
3 ms
10496 KB
2_029.txt
AC
172 ms
53760 KB
2_030.txt
AC
970 ms
98816 KB
2_031.txt
AC
3 ms
4352 KB
2_032.txt
AC
3 ms
4352 KB
2_033.txt
AC
2 ms
4352 KB
2_034.txt
AC
2 ms
4352 KB
2_035.txt
AC
3 ms
4352 KB
2_036.txt
AC
12 ms
53760 KB
2_037.txt
AC
213 ms
10496 KB
2_038.txt
AC
3 ms
10496 KB
2_039.txt
AC
214 ms
10496 KB
2_040.txt
TLE
2103 ms
53760 KB
2_041.txt
AC
12 ms
53760 KB
2_042.txt
AC
12 ms
53760 KB
2_043.txt
AC
23 ms
41344 KB
2_044.txt
AC
12 ms
53632 KB
2_045.txt
AC
26 ms
49536 KB
2_046.txt
AC
402 ms
78336 KB
2_047.txt
AC
696 ms
80384 KB
2_048.txt
AC
1001 ms
78336 KB
2_049.txt
AC
1020 ms
74240 KB
2_050.txt
AC
1006 ms
70144 KB