Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
#include <iostream>
#include <fstream>
using namespace std;
long int x[4],n,a[5001],kt[5001],ktvt[5001],MAXtong,dem=0;
int TRY(int i)
{
for(int j=x[i-1]+1;j<=n;j++)
if(kt[a[j]]==0)
{
x[i]=j;
kt[a[j]]=1;
if(i==3)
{
if(a[x[3]]==(float)(a[x[2]]+a[x[1]])/2||a[x[2]]==(float)(a[x[3]]+a[x[1]])/2||a[x[1]]==(float)(a[x[2]]+a[x[3]])/2)
{
dem++;
if(a[x[1]]+a[x[2]]+a[x[3]]>MAXtong)
{
MAXtong=a[x[1]]+a[x[2]]+a[x[3]];
}
}
}
else
TRY(i+1);
kt[a[j]]=0;
}
}
int main()
{
ifstream f("boba.inp");
f>>n;
for(int i=1;i<=n;i++)
{
f>>a[i];
}
x[0]=0;
MAXtong=-1000000000;
fill_n(kt,1001,0);
TRY(1);
cout<<dem<<endl;
if(dem>0)
{
cout<<MAXtong;
}
return 0;
}
Mình mới đạt tới trình độ quy hoạch động nên bạn thông cảm
Xin lỗi bạn, mình không hỗ trợ C. mình chỉ biết pascal thôi
const fi='tamhop.inp';
fo='tamhop.out';
var f1,f2:text;
a:array[1..100]of integer;
n,i,j,k,dem,max,t:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{--------------------------------xu-ly--------------------------------}
dem:=0; max:=0;
for i:=1 to n-2 do
begin
for j:=i+1 to n-1 do
begin
for k:=j+1 to n do
begin
if (a[i]=(a[j]+a[k])/2) or (a[j]=(a[i]+a[k])/2) or (a[k]=(a[i]+a[j])/2) then
begin
inc(dem);
t:=a[i]+a[j]+a[k];
if max<=t then max:=t;
end;
end;
end;
end;
writeln(f2,dem);
writeln(f2,max);
close(f1);
close(f2);
end.
const fi = 'CHIAHETK.INP';
fo = 'CHIAHETK.OUT';
MAXN = 10000;
MAXW = 1000;
oo = MAXINT div 2;
var f: text; n: integer;
k: integer;
a: array[1..MAXN] of integer;
L: array[0..MAXN, 0..MAXW] of integer;
procedure Nhap;
var i: integer;
begin
assign(f, fi); reset(f);
readln(f, n, k);
for i:= 1 to n do
read(f, a[i]);
close(f);
end;
function max(a, b: integer): integer;
begin
if a > b then exit(a)
else exit(b);
end;
function dongduduong(s: integer): integer;
begin
s:= s mod k; // -(k-1)..0..k-1
if s >= 0 then exit(s)
else exit(s + k);
end;
procedure QHD;
var i, j: integer;
begin
// Goi L[i, v] la do dai cua day con dai nhat co tong chia k du v
for j:= 0 to k-1 do
if j = dongduduong(a[1]) then L[1, j]:= 1
else L[1, j]:= -oo;
for i:= 2 to n do
for j:= 0 to k-1 do
L[i, j]:= max(1 + L[i-1, dongduduong(j-a[i])], L[i-1, j]);
end;
procedure TruyVet(i, j: integer);
begin
if i = 0 then exit;
if L[i, j] = 1 + L[i-1, dongduduong(j-a[i])] then
// Chon do vat thu i
begin
TruyVet(i-1, dongduduong(j-a[i]));
write(f, a[i], ' ');
end
else
// Khong chon do vat thu i
TruyVet(i-1, j);
end;
procedure InKQ;
var i, j:integer;
begin
assign(f, fo); rewrite(f);
writeln(f, L[n, 0]);
TruyVet(n, 0);
close(f);
end;
BEGIN
Nhap;
QHD;
InKQ;
END.
program SEQ11;
var n,k,s,dem,max:qword;
a:array[1..10000000] of qword;
i,j:longint;
begin
readln(n,k);
for i := 1 to n do read(a[i]);
max := 0; i := 1;
repeat
s := 0;
dem := 0;
for j := i to n do
begin
s := s+a[j];
inc(dem);
if s mod k = 0 then
if max < dem then max := dem;
end;
inc(i);
until i = n;
write(max);
end.
const fi='input.txt';
fo='chiahet.txt';
var f1,f2:text;
a:array[1..100]of integer;
i,n,dem:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
n:=0;
while not eoln(f1) do
begin
inc(n);
read(f1,a[n]);
end;
dem:=0;
for i:=1 to n do
if a[i] mod 3=0 then inc(dem);
writeln(f2,dem);
close(f1);
close(f2);
end.
var f:text;
s:string;
i,dem,max,dau,cuoi:byte;
begin
assign(f,'xau1.txt'); reset(f);
readln(f,s);
close(f);
assign(f,'xau2.txt'); rewrite(f);
dem:=1; max:=1; dau:=1; cuoi:=1;
for i:=1 to length(s)-1 do
begin
if s[i]=s[i+1] then inc(dem) else dem:=1;
if dem>max then
begin
max:=dem;
cuoi:=i+2;
dau:=cuoi-dem;
end;
end;
write(f,dau,':',cuoi);
close(f);
readln;
end.
Program hotrotinhoc;
const fi='xau1.txt';
fo='xau2.txt';
var
f:text;
s:string;
i,d,c,j:byte;
procedure ip;
begin
assign(f,fi);
reset(f);
read(f,s);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
j:=0;
for i:= 1 to length(s) do
begin
if j=0 then j:=i;
if s[i] <> s[i+1] then
begin
if ((i-j)+1)>((c-d)+1) then
begin
d:=j;
c:=i;
end;
j:=0;
end;
end;
write(f,d,':',c);
close(f);
end;
BEGIN
ip;
out;
END.
16 là đến chữ a không phải chữ c mà. Nếu bạn muốn in ra 16 thì chỉ cần write(f,d,':',c+1);
# Nhập dãy số từ bàn phím
lst = list(map(int, input("Nhập dãy số cách nhau bởi dấu cách: ").split()))
# Sắp xếp dãy số theo thuật toán sắp xếp chọn
for i in range(len(lst)):
min_idx = i
for j in range(i+1, len(lst)):
if lst[j] < lst[min_idx]:
min_idx = j
lst[i], lst[min_idx] = lst[min_idx], lst[i]
# In kết quả ra màn hình
print("Dãy số đã sắp xếp:", lst)
Program hotrotinhoc;
const fi='lientiep.inp';
fo='lientiep.out';
var f: text;
a,b: array[1..32000] of integer;
k,i,n,max,vtd,vtc: integer;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n,k);
for i:=1 to n do read(f,a[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
max:=0; i:=1;
while i<=n do
begin
j:=i;
t:=a[i];
while (a[j]<a[j+1]) and (j<=n) do
begin
inc(j);
t:=t+a[j];
end;
if t>max then
begin
max:=t;
vtd:=i;
vtc:=j;
end;
i:=j+1;
end;
for i:=vtc downto vtd do
begin
inc(d1);
b[d1]:=a[i];
end;
for i:= k dowto 1 do
write(f,b[i],' ');
close(f);
end;
begin
ip;
out;
end.
Gợi ý:
Đánh số thứ tự các ô vuông . Đánh dấu các số liền nhau 1 đơn vị là False . Sau đó với các trường hợp còn lại là True thì đếm.
Bạn có thể cho mình một ví dụ được không?