blob: 708ff20eb0af5fff99bff943872fe62f104b5d68 (
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
|
#include <iostream>
int main() {
int a, b, c;
std::cin >> a >> b >> c;
// Най-ефикасния начин да направим това, е да използваме 3 if-a и в тях да разменяме стойностите,
// така че накрая винаги a, b и c са в нарастващ ред
// Най лесния начин да обясня логиката е следния:
// Искаме a < b < c, това може да го сведем до точно 3 сравнение между две стойности,
// a < b, b < c и това което е изпълнено поради дефиницията на <, a < c
// a < b < c може да не е изпълнено, когато a < b, b < c и/или a < c не е изпълнено
// Затова разглеждаме точно тези случаи, които не биха били изпълнени, и с размяна ги правим изпълнени
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
if (a > c) {
int temp = a;
a = c;
c = temp;
}
std::cout << a << ' ' << b << ' ' << c << std::endl;
}
|