blob: 99049ad5f8d857ffffae576a4bab207365884754 (
plain) (
blame)
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
|
#include <iostream>
int main() {
const unsigned int SIZE = 4;
unsigned long numbers[SIZE];
for (int i = 0; i < SIZE; i++)
std::cin >> numbers[i];
unsigned long max_number = 0;
/* Това решение е ГРОЗНО!
* Има по-добри начини да се реализира, но тук се показва
* доста видно комбинаториката, т.е. как се избират индексите.
*/
// 4 избора за първото число
for (int i = 0; i < SIZE; i++) {
// 3 избора за второто число
for (int j = 0; j < SIZE; j++) {
if (j == i) continue;
// 2 избора за третото число
for (int k = 0; k < SIZE; k++) {
if (k == j || k == i) continue;
// 1 избор за четвъртото число
for (int l = 0; l < SIZE; l++) {
if (l == k || l == j || l == i) continue;
unsigned long current_number = numbers[i] * 1000000000 +
numbers[j] * 1000000 +
numbers[k] * 1000 +
numbers[l];
if (current_number > max_number)
max_number = current_number;
}
}
}
}
std::cout << max_number << std::endl;
return 0;
}
|