Guest User

Untitled

a guest
Nov 17th, 2015
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main() {
  5. int n = 6, s = 21, l = 0, g = 0, t = 0, s1 = 0, mk = 0;
  6. int q = pow(2,n/2) - 1;
  7. int r = (pow(2,n/2)*2);
  8. int a[6]= {1,3,8,5,10,12};
  9. int b[q][n]= {{0},{0}};
  10. int e[r] = {0};
  11.  
  12. for(int i = 0; i < n; i++) {
  13. for(int j = 0; j < n; j++) {
  14. if (a[i] < a[j]) {
  15. t = a[i];
  16. a[i] = a[j];
  17. a[j] = t;
  18. }
  19. }
  20. }
  21. for(int i = 0; i < pow(2,n/2); i++) {
  22. for(int j = 0; j < n / 2; j++) { // {0,1}
  23. b[i][j] = g%2;
  24. b[i][(n / 2)+j] = g%2;
  25. g /= 2;
  26. }
  27.  
  28. l++;
  29. g = l;
  30.  
  31. for (int h = 0; h < n / 2; h++) {
  32. e[i] = e[i] + a[h]*b[i][h];
  33. e[i+q+1] = e[i+q+1] + a[h+(n/2)]*b[i][h+(n/2)];
  34. }
  35. }
  36.  
  37. for(int i = 0; i < pow(2,n / 2); i++) {
  38. for(int j = 0; j < pow(2,n /2); j++) {
  39. s1 = e[i] + e[j+1+q];
  40. if (s1 == s) {
  41. for(int y = 0; y < n/2; y++){
  42. if (b[i][y] != 0) {
  43. printf("%d ", a[y]);
  44. }
  45. if(b[j][y+n/2]!=0){
  46. printf("%d ", a[y+n/2]);
  47. }
  48. }
  49. break;
  50. }
  51. }
  52. if (s1 == s) {
  53. break;
  54. }
  55. }
  56. if (s1 != s) {
  57. printf("Elements not found\n");
  58. }
  59.  
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment