Nhân dịp kết thúc năm học đạt kết quả cao, bé An được bố và mẹ hứa mỗi người sẽ thưởng cho một con gấu bông được mua từ siêu thị Byteland. Hiện tại siêu thị có 𝑛 con gấu bông được đánh chỉ số từ 1 đến 𝑛, con gấu bông thứ 𝑖 có giá trị là một số nguyên dương 𝑎𝑖 (1 ≤ 𝑎𝑖 ≤10^6, 1 ≤ 𝑖 ≤ 𝑛). An muốn chọn mua hai con gấu bông có giá trị khác nhau. Yêu cầu: Tính tổng giá trị lớn nhất của hai con gấu bông mà bé An có thể mua được. Dữ liệu vào: Đọc từ tệp văn bản CAU3.INP có cấu trúc như sau: dòng đầu tiên ghi số nguyên dương 𝑛. Dòng thứ hai ghi lần lượt 𝑎1, 𝑎2, … , 𝑎𝑛 cách nhau một dấu cách. Kết quả: Ghi ra tệp văn bản CAU3.OUT một số duy nhất là tổng giá trị lớn nhất của hai con gấu bông bé An có thể mua được. Nếu không thể mua được như mong muốn thì ghi −1. Ví dụ: CAU3.INP CAU3.OUT 5 7 2 4 3 4 3 5 -1 2 2 2 2 2
2 câu trả lời
uses crt;
var max1, max2, i, n, a: longint;
begin
readln(n);
for i:=1 to n do begin
read(a);
if a > max1 then begin
max2:=max1;
max1:=a;
end else if (max2 < a) and (a <> max1) then max2:=a;
end;
if (n = 1) or (max2 = 0) then begin
writeln(-1);
exit;
end;
writeln(max1 + max2);
end.
uses math;
var a:array[0..trunc(1e6+7)] of longint;
nmax,n2,n,i:longint;
begin
assign(input,'cau3.inp');reset(input);
assign(output,'cau3.out');rewrite(output);
readln(n);
nmax:=-maxlongint;
n2:=-maxlongint;
for i := 1 to n do
begin
read(a[i]);
nmax:=max(nmax,a[i]);
end;
for i := 1 to n do
if (n2 < a[i]) and (a[i] < nmax) then n2 := a[i];
if n2 = -maxlongint then writeln(-1) else writeln(nmax+n2);
close(input);close(output);
end.