Find if a molecule can be formed from 3 atoms using their valence numbers
Valence number of an atom is defined as the exact number of bonds the atom must form with other atoms. Given valence number of 3 atoms, the task is to determine if they can form a molecule together or not. Atoms can form multiple bonds with each other.
Examples:
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
Approach: Let the valence numbers be a, b and c. Let c be the largest. We have 2 cases in which the molecule cannot be formed:
- a+b+c is odd: Since every bond decreases the valence number of 2 atoms by 1, the sum of valence numbers should be an even number.
- a+b < c: In this case, c will be left unsatisfied even if every bond is formed with it.
Below is the implementation of the above approach:
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 ?> |
Output:
Yes
Time complexity: O(1)
Recommended Posts:
- Find the count of numbers that can be formed using digits 3, 4 only and having length at max N.
- Maximum factors formed by two numbers
- GCD of two numbers formed by n repeating x and y times
- Sum of all subsets of a set formed by first n natural numbers
- Sum of sum of all subsets of a set formed by first N natural numbers
- Minimum sum of two numbers formed from digits of an array
- Count numbers formed by given two digit with sum having given digits
- N digit numbers divisible by 5 formed from the M digits
- Check if the number formed by the last digits of N numbers is divisible by 10 or not
- Find the largest number that can be formed by changing at most K digits
- Find the Largest Cube formed by Deleting minimum Digits from a number
- Find the lexicographically smallest sequence which can be formed by re-arranging elements of second array
- Find the area of the shaded region formed by the intersection of four semicircles in a square
- Find maximum number that can be formed using digits of a given number
- Find trace of matrix formed by adding Row-major and Column-major order of same matrix
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.