K
Khách

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.

HÀNG CÂY.

Cổng vào Trung tâm thanh thiếu nhi có một hàng cây gồm N cây cảnh. Hàng cây được đánh số từ 1 đến N tính từ ngoài vào trong. Ban quản lí Trung tâm đã đo được cây thứ i có độ cao là hi. Để cho đẹp, hàng cây phải có độ cao tăng dần tính từ ngoài cổng vào (cây phía ngoài phải thấp hơn cây phía trong). Vì vậy, Ban quản lí Trung tâm quyết định chặt bỏ đi những cây có độ cao không phù hợp và giữ nguyên vị trí các cây còn lại để được một hàng cây có độ cao tăng dần.

Yêu cầu: Tìm cách loại bỏ đi một số cây sao cho số cây còn lại là nhiều nhất và hàng cây có độ cao tăng dần.

Dữ liệu vào: Cho trong file văn bản HANGCAY.INP, có cấu trúc:

- Dòng 1: Ghi số nguyên dương N, là số lượng cây ban đầu trong hàng cây (1≤N≤100)

- Dòng 2: Ghi N số nguyên dương hi (1 ≤ hi ≤ 32767) lần lượt là độ cao của cây thứ i trong hàng cây, tính từ ngoài cổng vào. Các số được ghi cách nhau ít nhất một dấu cách.

Dữ liệu ra: Ghi ra file văn bản HANGCAY.OUT, theo cấu trúc:

- Dòng 1: Ghi số nguyên dương M, là số lượng cây còn lại trong hàng cây sau khi loại bỏ.

- Dòng 2: Ghi M số nguyên dương là chỉ số của mỗi cây còn lại trong hàng cây sau khi loại bỏ. Các số phải được ghi cách nhau ít nhất một dấu cách.

Ví dụ:

HANGCAY.INP

HANGCAY.OUT

5

5 8 3 4 9

3

1 2 5

2
27 tháng 3 2020

const fi='nix.inp';
fo='nix.out';
var
f:text;
j,i,n,max:0..100;
a,b,l,m: array [0..101] of integer;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:= 1 to n do
read(f,a[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
for i:= 0 to n do
l[i] := 1;
for i:= 1 to n do
for j:= i to n do
if (a[j] > a[i] ) and (l[j] < l[i] + 1 ) then
begin
l[j] := l[i] + 1;
m[j]:= i;
end;
max:=0;
for i:= 1 to n do
if l[i] > max then
begin
j:=i;
max:=l[i];
end;
while m[j] <> 0 do
begin
l[j]:=-l[j];
j:=m[j];
end;
l[j]:=-l[j];
for i:= 1 to n do
if l[i] < 0 then write(f,i,' ');

close(f);
end;
BEGIN
ip;
out;
END.

bạn cho thêm vài ví dụ nữa đi

1 tháng 2 2020

#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.

@Aki Tsuki; @Luân Đào; @Nguyễn Nhật Minh Sau bao ngày, nay trở lại cũng đã gặp những "cao thủ lập trình", nay tại hạ xin mạn phép nhờ các vị giúp đỡ Hàng cây Một trang trại lớn có n cây cảnh với độ cao khác nhau từng đôi. Các cây này được xếp theo một hàng dọc. Ông chủ trang trại là người có đầu óc thẩm mỹ nên hàng cây được bố trí có tính chất không đơn điệu sau đây: “Đi...
Đọc tiếp

@Aki Tsuki; @Luân Đào; @Nguyễn Nhật Minh

Sau bao ngày, nay trở lại cũng đã gặp những "cao thủ lập trình", nay tại hạ xin mạn phép nhờ các vị giúp đỡ

Hàng cây

Một trang trại lớn có n cây cảnh với độ cao khác nhau từng đôi. Các cây này được xếp theo một hàng dọc. Ông chủ trang trại là người có đầu óc thẩm mỹ nên hàng cây được bố trí có tính chất không đơn điệu sau đây: “Đi từ đầu hàng đến cuối hàng không có 3 cây (không nhất thiết phải liên tiếp) có chiều cao giảm dần”.

Một hôm ông chủ mua thêm một cây cảnh mới có chiều cao lớn hơn chiều cao của tất cả các cây đã có. Ông ta muốn xếp cây cảnh mới vào một trong n +1 vị trí có thể của hàng cây đang có (vào vị trí đầu hàng, vị trí sau cây thứ nhất của hàng, vị trí sau cây thứ hai của hàng, ..., vị trí sau cây thứ n của hàng) sao cho hàng cây thu được vẫn thỏa mãn yêu cầu về tính không đơn điệu nêu trên.

Yêu cầu:

• Hãy cho biết có bao nhiêu cách xếp cây cảnh cao nhất mới mua vào hàng cây sao cho vẫn đảm bảo điều kiện về tính không đơn điệu.

• Giả sử mỗi ngày ông chủ muốn xếp n+1 cây đã có thành hàng cây đảm bảo yêu cầu về tính không đơn điệu và hai hàng cây của hai ngày khác nhau là không trùng nhau, hãy giúp ông chủ tính xem việc đó có thể diễn ra nhiều nhất là bao nhiêu ngày.

Dữ liệu: Vào từ file văn bản TREELINE.INP

• Dòng thứ nhất chứa hai số nguyên dương n h tương ứng là số lượng cây và chiều cao của cây cao nhất. Biết rằng n ≤ 105, h ≤ 106.

• Dòng thứ hai chứa n số nguyên dương (mỗi số đều nhỏ hơn h) tương ứng là dãy chiều cao của n cây được xếp ban đầu.

Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.

Kết quả: Ghi ra file văn bản TREELINE.OUT

• Dòng thứ nhất ghi một số nguyên là số cách xếp cây cao nhất vào hàng cây.

• Dòng thứ hai ghi một số nguyên là phần dư trong phép chia số ngày lớn nhất tìm được cho 109.

1
29 tháng 3 2019

bạn có thể cho ví dụ được ko ạ?

31 tháng 3 2019

Vd:

INP: 2 2011

OUT: 2

INP: 11 1

OUT: 5

Xl mk trl muộn

const fi='tong.inp';

fo='tong.out';

var f1,f2:text;

a:array[1..100]of integer;

n,i,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]);

t:=0;

for i:=1 to n do 

  t:=t+a[i];

writeln(f2,t);

close(f1);

close(f2);

end.

Câu 1 (6,0 điểm): Tính giá trị Nhập vào 2 số nguyên dương N và M. Yêu cầu: Tính tổng M các số tận cùng của N. Dữ liệu vào: Cho trong file văn bản CAU1.INP, có cấu trúc như sau: - Dòng 1: Ghi số nguyên dương N. - Dòng 2: Ghi số nguyên dương M (M≤ N) . Dữ liệu ra: Ghi ra file văn bản CAU1.OUT, theo cấu trúc như sau: - Ghi kết quả tổng của M số tận cùng của N. Ví...
Đọc tiếp

Câu 1 (6,0 điểm): Tính giá trị

Nhập vào 2 số nguyên dương N và M.

Yêu cầu: Tính tổng M các số tận cùng của N.

Dữ liệu vào: Cho trong file văn bản CAU1.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N.

- Dòng 2: Ghi số nguyên dương M (M≤ N) .

Dữ liệu ra: Ghi ra file văn bản CAU1.OUT, theo cấu trúc như sau:

- Ghi kết quả tổng của M số tận cùng của N.

Ví dụ:

CAU1.INP

CAU1.OUT

34562

2

8

Câu 2 (7,0 điểm): Tìm số

Dãy các số tự nhiên được viết ra thành một dãy vô hạn trên đường thẳng:

1234567891011121314..... (1)

Yêu cầu: Viết chương trình yêu cầu nhập số K và in lên tệp CAU2.OUT kết quả là số nằm ở vị trí thứ K trong dãy (1) ở trên và số đó thuộc vào số nào?

Dữ liệu vào: Cho trong file văn bản CAU2.INP, có cấu trúc như sau:

- Ghi số nguyên dương K

Dữ liệu ra: Ghi ra file văn bản CAU2.OUT, theo cấu trúc như sau:

- Trên 1 dòng in kết quả số ở vị trí K và số chứa số đó cách nhau ít nhất một dấu cách.

Ví dụ:

CAU2.INP

CAU2.OUT

15

2 12

Câu 3 (7,0 điểm): Đếm ký tự

Cho một văn bản gồm N dòng. Các ký tự được lấy từ tập các chữ cái và chữ số.

Yêu cầu: Tìm số lượng ký tự của dòng ngắn nhất, số lượng ký tự của dòng dài nhất và số lượng ký tự của văn bản.

Dữ liệu vào: Cho trong file văn bản CAU3.INP, có cấu trúc như sau:

- Dòng 1: Ghi số nguyên dương N là số dòng của văn bản (1 ≤ N ≤ 100).

- N dòng tiếp theo: Mỗi dòng ghi một xâu gồm L ký tự (0 < L < 255).

Dữ liệu ra: Ghi ra file văn bản CAU3.OUT, theo cấu trúc như sau:

- Dòng 1: Ghi 3 số nguyên dương x y z. Trong đó: x là số lượng ký tự của dòng ngắn nhất; y là số lượng ký tự của dòng dài nhất, z là số lượng ký tự của văn bản. Các số được ghi cách nhau ít nhất một dấu cách.

Ví dụ:

CAU3.INP

CAU3.OUT

3

ThiHSG09

Nam2015

Vong1

5 8 20

4
5 tháng 9 2019

cau1

uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.

cau3

uses crt;
const
fi='CAU1.inp';
fn='CAU1.out';
var n: string;
f:text;
m,i,a,tong: integer;
BEGIN
clrscr;
assign(f,fi);reset(f);
read(f,n);
read(f,m);
close(f);
assign(f,fn);rewrite(f);
for i:= length(n) downto length(n)-m+1 do
begin
val(n[i],a);
tong:=tong+a;
end;
write(f,tong);
close(f);
readln;
END.

6 tháng 9 2019

Câu 2:

*Ý tưởng :

+ Ý 1:

- Bạn không cần chạy đến vô hạn như đề cho đầu , bạn chỉ cần 1 vòng for chạy đến k là được bởi vì nó lấy kí tự thứ k.

- Bạn cho 1 vòng for chạy đến k và chuyển dãy số đó sang xâu và cho 1 biến đếm vào

- Nếu biến đếm bằng với k thì write(s[d]);

+ Ý 2:

- Các số có 1 chữ số chỉ có từ 1 đến 9. Nên nếu d<9 thì write(s[d]);

- Nếu mà d>9 và d là số lẻ thì write(s[d-1],s[d]) ngược là nếu d là số chẵn thì write(s[d],s[d+1]);

Đây là ý tưởng , nếu bạn không hiểu chỗ nào cứ hỏi mình , bạn làm theo ý tưởng mình xem nhé. Nếu không được mình sẽ gửi bài làm của mình cho bạn xem.

4 tháng 5 2019

Help me

5 tháng 5 2019

đây là toán mà ??

8 tháng 3 2022

program lake;
uses crt;
var n,t,i:integer;
s,a,b:longint;
begin
clrscr;
readln(n,t);
s:=0;
for i:=1 to n do begin
readln(a,b);
s:=s+a-b*t;
end;
write(s);
readln
end.