-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_time_astyle.cpp
95 lines (82 loc) · 1.52 KB
/
main_time_astyle.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//============================================================================
// Name : ass3.cpp
// Author : sandeep
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
/*
* main.cpp
*
* Created on: 31-Jan-2015
* Author: sandeep
*/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int a[4];
void swap(int *X, int *Y)
{
int temp;
temp = *X;
*X = *Y;
*Y = temp;
}
void permutation(int arr[], int i, int n, int sum)
{
int j;
if(i == n)
{
if((arr[0] + arr[1] + arr[2]*arr[3]) <= sum)
printf(" %d, %d, %d, %d \n", arr[0], arr[1], arr[2], arr[3]);
}
else
{
for(j = i; j <= n; j++)
{
swap(arr[i], arr[j]);
permutation(arr, i + 1, n, sum);
swap(arr[i], arr[j]);
}
}
return;
}
void combinations(int v[], int start, int n, int k, int maxk, int sum1)
{
int i;
int sum = sum1;
int b[4];
if(k > maxk)
{
for(i = 1; i <= maxk; i++)
{
int k = v[i];
b[i - 1] = a[k - 1];
}
permutation(b, 0, 3, sum);
return;
}
for(i = start; i <= n; i++)
{
v[k] = i;
combinations(v, i + 1, n, k + 1, maxk, sum);
}
}
int main()
{
int v[100], n, sum, k;
cout << "Enter total no of integer : ";
cin >> n;
cout << "Enter the value of sum : ";
cin >> sum;
for(int i = 0; i < n; i++)
{
printf("%d value of a ", i);
cin >> a[i];
}
k = 4;
combinations(v, 1, n, 1, k, sum);
cout << "Done" << endl;
return 0;
}