Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- int main() {
- int n = 6, s = 21, l = 0, g = 0, t = 0, s1 = 0, mk = 0;
- int q = pow(2,n/2) - 1;
- int r = (pow(2,n/2)*2);
- int a[6]= {1,3,8,5,10,12};
- int b[q][n]= {{0},{0}};
- int e[r] = {0};
- for(int i = 0; i < n; i++) {
- for(int j = 0; j < n; j++) {
- if (a[i] < a[j]) {
- t = a[i];
- a[i] = a[j];
- a[j] = t;
- }
- }
- }
- for(int i = 0; i < pow(2,n/2); i++) {
- for(int j = 0; j < n / 2; j++) { // {0,1}
- b[i][j] = g%2;
- b[i][(n / 2)+j] = g%2;
- g /= 2;
- }
- l++;
- g = l;
- for (int h = 0; h < n / 2; h++) {
- e[i] = e[i] + a[h]*b[i][h];
- e[i+q+1] = e[i+q+1] + a[h+(n/2)]*b[i][h+(n/2)];
- }
- }
- for(int i = 0; i < pow(2,n / 2); i++) {
- for(int j = 0; j < pow(2,n /2); j++) {
- s1 = e[i] + e[j+1+q];
- if (s1 == s) {
- for(int y = 0; y < n/2; y++){
- if (b[i][y] != 0) {
- printf("%d ", a[y]);
- }
- if(b[j][y+n/2]!=0){
- printf("%d ", a[y+n/2]);
- }
- }
- break;
- }
- }
- if (s1 == s) {
- break;
- }
- }
- if (s1 != s) {
- printf("Elements not found\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment