Find if a molecule can be formed from 3 atoms using their valence numbers
Last Updated :
11 Aug, 2022
The valence number of an atom is defined as the exact number of bonds the atom must form with other atoms. Given the 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++
#include <bits/stdc++.h>
using namespace std;
void printPossible( int a, int b, int c)
{
if ((a + b + c) % 2 != 0 || a + b < c)
cout << "NO" ;
else
cout << "YES" ;
}
int main()
{
int a = 2, b = 4, c = 2;
printPossible(a, b, c);
return 0;
}
|
Java
import java.io.*;
class GFG {
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" );
}
public static void main (String[] args) {
int a = 2 , b = 4 , c = 2 ;
printPossible(a, b, c);
}
}
|
Python3
def printPossible( a, b, c):
if ((a + b + c) % 2 ! = 0 or a + b < c):
print ( "NO" )
else :
print ( "YES" )
if __name__ = = "__main__" :
a = 2
b = 4
c = 2
printPossible(a, b, c)
|
C#
using System;
class GFG
{
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" );
}
public static void Main()
{
int a = 2, b = 4, c = 2;
printPossible(a, b, c);
}
}
|
PHP
<?php
function printPossible( $a , $b , $c )
{
if (( $a + $b + $c ) % 2 != 0 ||
$a + $b < $c )
echo ( "NO" );
else
echo ( "YES" );
}
$a = 2;
$b = 4;
$c = 2;
printPossible( $a , $b , $c );
?>
|
Javascript
<script>
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>
|
Output:
Yes
Time complexity: O(1)
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...