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ụ:

  1. Nếu mảng arr = [1, 2, 3] thì bạn có thể tạo thành biểu thức 1+2=3
  2. 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:

  1. 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.
  2. 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

There are no comments at the moment.