Algorithm
Tattah's youngest brother, Tuftuf, is new to programming.
Since his older brother is such a good programmer, his biggest dream is to outshine him. Tuftuf is a student at the German University in Cairo (GUC) where he learns to write programs in Gava.
Today, Tuftuf was introduced to Gava's unsigned integer datatypes. Gava has n unsigned integer datatypes of sizes (in bits) a1, a2, ... an. The i-th datatype have size ai bits, so it can represent every integer between 0 and 2ai - 1 inclusive.
Tuftuf is thinking of learning a better programming language. If there exists an integer x, such that x fits in some type i (in ai bits) and x·x does not fit in some other type j (in aj bits) where ai < aj, then Tuftuf will stop using Gava.
Your task is to determine Tuftuf's destiny.
The first line contains integer n (2 ≤ n ≤ 105) — the number of Gava's unsigned integer datatypes' sizes. The second line contains a single-space-separated list of n integers (1 ≤ ai ≤ 109) — sizes of datatypes in bits. Some datatypes may have equal sizes.
Print "YES" if Tuftuf will stop using Gava, and "NO" otherwise.
3
64 16 32
NO
4
4 2 1 3
YES
In the second example, x = 7 (1112) fits in 3 bits, but x2 = 49 (1100012) does not fit in 4 bits.
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
int main(){
long n; scanf("%ld\n", &n);
std::vector<long> bits(n, 0);
for(int p = 0; p < n; p++){scanf("%ld", &bits[p]);}
sort(bits.begin(), bits.end());
std::string output = "NO";
for(int p = 1; p < n; p++){
if(bits[p - 1] != bits[p] && 2 * bits[p - 1] > bits[p]){output = "YES"; break;}
}
std::cout << output << std::endl;
return 0;
}
Copy The Code &
Try With Live Editor
Input
64 16 32
Output
Demonstration
Codeforces Solution-B. Datatypes-Solution in C, C++, Java, Python