Mad scientist Mike is busy carrying out experiments in chemistry. Today he will attempt to join three atoms into one molecule.ios
A molecule consists of atoms, with some pairs of atoms connected by atomic bonds. Each atom has a valence number — the number of bonds the atom must form with other atoms. An atom can form one or multiple bonds with any other atom, but it cannot form a bond with itself. The number of bonds of an atom in the molecule must be equal to its valence number.ui
Mike knows valence numbers of the three atoms. Find a molecule that can be built from these atoms according to the stated rules, or determine that it is impossible.atom
The single line of the input contains three space-separated integers a, b and c (1 ≤ a, b, c ≤ 106) — the valence numbers of the given atoms.spa
If such a molecule can be built, print three space-separated integers — the number of bonds between the 1-st and the 2-nd, the 2-nd and the 3-rd, the 3-rd and the 1-st atoms, correspondingly. If there are multiple solutions, output any of them. If there is no solution, print "Impossible" (without the quotes).code
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int get13(int a, int b, int c) 7 { 8 int i; 9 for(i = 1; i <= a; ++i){ 10 if(c - i <= b && b - c + i == a - i && c - i >= 0){ 11 return i; 12 } 13 } 14 for(i = 1; i <= a; ++i){ 15 if(b - i <= c && c - b + i == a - i && b - i >= 0){ 16 return i + 10e7; 17 } 18 } 19 return -1; 20 } 21 22 int main() 23 { 24 int a, b, c; 25 while(scanf("%d %d %d", &a, &b, &c) != EOF){ 26 int i = get13(a, b, c); 27 if(i == -1) { 28 puts("Impossible"); 29 } 30 else if(i < 10e7){ 31 printf("%d %d %d\n", a - i, b - a + i, i); 32 } 33 else{ 34 i -= 10e7; 35 printf("%d %d %d\n", i, c - a + i, a - i); 36 } 37 } 38 return 0; 39 }