Biểu thức lớn nhất
Submit solution
Points:
4
Time limit:
1.0s
Memory limit:
256M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Cho một mảng arr chứa các số nguyên không âm, bạn có thể ghép các số trong mảng này lại với nhau và tạo ra được một biểu thức ở dạng như sau:
A+B+...=X
Ví dụ:
- Nếu mảng arr = [1, 2, 3] thì bạn có thể tạo thành biểu thức 1+2=3
- Nếu mảng arr = [1, 2, 3, 24] thì bạn có thể ghép phần tử 2 và 1 để tạo thành biểu thức 21+3=4
Lưu ý: không phải lúc nào bạn cũng có thể tạo ra được biểu thức đúng với dữ liệu đầu vào. Ví dụ nếu arr = [1, 1, 1] thì không tồn tại biểu thức thỏa mãn. Biết để tạo ra được biểu thức này thì bạn cần tuân theo các luật sau:
- Không thể ghép số 0 vào đằng trước các số khác. Ví dụ 12 và 0 thì chỉ có thể ghép thành 120 và không thể ghép thành 012.
- Biểu thức phải chứa ít nhất 1 dấu cộng.
Nhiệm vụ của bạn là hãy sử dụng các số đã cho để ghép thành một biểu thức có giá trị lớn nhất và hiển thị ra biểu thức này.
Input
- Dòng đầu tiên chứa số nguyên \(n\) là số phần tử của mảng arr. (\(0 <= n <= 15\))
- \(n\) dòng tiếp theo chứa n số nguyên \(a[i]\) là giá trị của các phần tử trong mảng (1 <= \(a[i]\) < 1000)
Output
- In ra một dòng duy nhất là giá trị lớn nhất của biểu thức hoặc -1 nếu không tồn tại cách tạo ra biểu thức.
Example
Input
3 1 2 3
Output
3
Input
3 1 1 1
Output
-1
Input
4 1 2 3 24
Output
24
Comments