Skip to content

Commit 162f673

Browse files
committed
new question added
1 parent c31eb74 commit 162f673

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

dynamic-programming/a.exe

512 Bytes
Binary file not shown.

dynamic-programming/question20.c

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,31 +76,38 @@ int findPartition(int *arr, int size){
7676
return 0;
7777
}
7878

79-
int part[sum/2+1][size];
79+
int part[sum/2+1][size+1];
8080

81-
for(i=0;i<size;i++){
81+
for(i=0;i<=size;i++){
8282
part[i][0] = 1;
83-
}
83+
}
84+
for(j=1;j<=sum/2;j++){
85+
part[0][j] = 0;
86+
}
8487

85-
for(i=0;i<size;i++){
88+
for(i=1;i<=size;i++){
8689
for(j=1;j<=sum/2;j++){
87-
part[i][j] = part[i-1][j] || part[i-1][j-arr[i]];
90+
if(arr[i-1] > j){
91+
part[i][j] = part[i-1][j];
92+
}else{
93+
part[i][j] = part[i-1][j] || part[i-1][j-arr[i-1]];
94+
}
95+
}
96+
}
97+
98+
for(i=0;i<=size;i++){
99+
for(j=0;j<=sum/2;j++){
100+
printf("%d ", part[i][j]);
88101
}
102+
printf("\n");
89103
}
90104

91-
// uncomment this part to print table
92-
for (i = 0; i < size; i++)
93-
{
94-
for (j = 0; j <= sum/2; j++)
95-
printf ("%4d", part[i][j]);
96-
printf("\n");
97-
}
105+
return part[size][sum/2];
98106

99-
return part[size-1][sum/2];
100107
}
101108

102109
int main(){
103-
int arr[] = {3,1,5,9,12};
110+
int arr[] = {3,5};
104111
int size = sizeof(arr)/sizeof(arr[0]);
105112
if(findPartition(arr,size)){
106113
printf("can be divided\n");

0 commit comments

Comments
 (0)