El número de valencia de un átomo se define como el número exacto de enlaces que el átomo debe formar con otros átomos. Dado el número de valencia de 3 átomos, la tarea es determinar si pueden formar una molécula juntos o no. Los átomos pueden formar enlaces múltiples entre sí.
Ejemplos:
Input: 2 4 2 Output: YES The bonds are between the following atoms: 1 - 2 1 - 2 2 - 3 2 - 3 Input: 1 2 3 Output: NO
Enfoque: Sean los números de valencia a, b y c. Sea c el mayor. Tenemos 2 casos en los que no se puede formar la molécula:
- a+b+c es impar: dado que cada enlace disminuye el número de valencia de 2 átomos en 1, la suma de los números de valencia debe ser un número par.
- a+b < c: En este caso, c quedará insatisfecha aunque se forme todo vínculo con ella.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Function to check if it is possible void printPossible(int a, int b, int c) { if ((a + b + c) % 2 != 0 || a + b < c) cout << "NO"; else cout << "YES"; } // Driver code int main() { int a = 2, b = 4, c = 2; printPossible(a, b, c); return 0; }
Java
// Java implementation of the above approach import java.io.*; class GFG { // Function to check if it is possible static void printPossible(int a, int b, int c) { if ((a + b + c) % 2 != 0 || a + b < c) System.out.println("NO"); else System.out.println("YES"); } // Driver code public static void main (String[] args) { int a = 2, b = 4, c = 2; printPossible(a, b, c); } } // This code is contributed by akt_mit
Python3
# Python 3 implementation of the # above approach # Function to check if it is possible def printPossible( a, b, c): if ((a + b + c) % 2 != 0 or a + b < c): print ("NO") else: print ("YES") # Driver code if __name__ == "__main__": a = 2 b = 4 c = 2 printPossible(a, b, c) # This code is contributed # by ChitraNayal
C#
// C# implementation of the above approach using System; class GFG { // Function to check if it is possible static void printPossible(int a, int b, int c) { if ((a + b + c) % 2 != 0 || a + b < c) Console.Write("NO"); else Console.Write("YES"); } // Driver code public static void Main() { int a = 2, b = 4, c = 2; printPossible(a, b, c); } } // This code is contributed // by Akanksha Rai
PHP
<?php // PHP implementation of the above approach // Function to check if it is possible function printPossible($a, $b, $c) { if (($a + $b + $c) % 2 != 0 || $a + $b < $c) echo ("NO"); else echo ("YES"); } // Driver code $a = 2; $b = 4; $c = 2; printPossible($a, $b, $c); // This code is contributed // by Shivi_Aggarwal ?>
Javascript
<script> // Javascript implementation of the above approach // Function to check if it is possible function printPossible(a, b, c) { if ((a + b + c) % 2 != 0 || a + b < c) document.write("No"); else document.write("Yes"); } let a = 2, b = 4, c = 2; printPossible(a, b, c); </script>
Producción:
Yes
Complejidad del tiempo: O(1)
Publicación traducida automáticamente
Artículo escrito por Abdullah Aslam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA