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.

Có N người sắp hàng mua vé dự buổi hoà nhạc. Ta đánh số họ từ 1 đến N theo thứ tự đứng trong hàng. Mỗi người cần mua một vé, song người bán vé được phép bán cho mỗi người tối đa hai vé. Vì thế, một số người có thể rời hàng và nhờ người đứng trước mình mua hộ vé. Biết ti là thời gian cần thiết để ngườii mua xong vé cho mình. Nếu người i+1 rời khỏi hàng và nhờ người i...
Đọc tiếp

Có N người sắp hàng mua vé dự buổi hoà nhạc. Ta đánh số họ từ 1 đến N theo thứ tự đứng trong hàng. Mỗi người cần mua một vé, song người bán vé được phép bán cho mỗi người tối đa hai vé. Vì thế, một số người có thể rời hàng và nhờ người đứng trước mình mua hộ vé. Biết ti là thời gian cần thiết để ngườii mua xong vé cho mình. Nếu người i+1 rời khỏi hàng và nhờ người i mua hộ vé thì thời gian để người thứ i mua được vé cho cả hai người là ri.

Yêu cầu: Xác định xem những người nào cần rời khỏi hàng và nhờ người đứng trước mua hộ vé để tổng thời gian phục vụ bán vé là nhỏ nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa số N (1 ≤ N ≤ 60000).
  • Dòng thứ 2 ghi N số nguyên dương t1, t2, ..., tN. (1 ≤ ti ≤ 30000)
  • Dòng thứ ba ghi N-1 số nguyên dương r1, r2, ..., rN-1. (1 ≤ ri ≤ 30000)

Kết quả

In ra tổng thời gian phục vụ nhỏ nhất.

help mình

0
Năm 2070, cuộc thi MasterChef- World Final được tổ chức lần đầu tiên tại Việt Nam, với rất nhiều quy tắc mới lạ so với các cuộc thi MasterChef thông thường. Có tất cả N thí sinh đến từ tất cả các quốc gia trên thế giới tranh tài tại cuộc thi lần này, thí sinh thứ i có khả năng nấu nướng là Ai. Một trong những thay đổi lớn nhất của MasterChef-World Final lần này, là thay vì các thí sinh...
Đọc tiếp
Năm 2070, cuộc thi MasterChef- World Final được tổ chức lần đầu tiên tại Việt Nam, với rất nhiều quy tắc mới lạ so với các cuộc thi MasterChef thông thường. Có tất cả N thí sinh đến từ tất cả các quốc gia trên thế giới tranh tài tại cuộc thi lần này, thí sinh thứ i có khả năng nấu nướng là Ai. Một trong những thay đổi lớn nhất của MasterChef-World Final lần này, là thay vì các thí sinh sẽ thi cá nhân, thì họ sẽ được ghép cặp tạo thành các team rồi mới cùng nhau tranh tài.

Những người tổ chức cuộc thi có danh sách N thí sinh, đánh số họ từ 1 tới N theo thứ tự từ trái sang phải, và bắt đầu sắp xếp họ vào các team theo các quy tắc sau:

- Mỗi team phải có một người Nam và một Nữ.

- Hai người có giới tính khác nhau, nằm cạnh nhau trong bảng danh sách, và có độ chênh lệch khả năng là nhỏ nhất, sẽ được xếp vào cùng một team. Nếu có nhiều đôi như thế, thì họ sẽ chọn ra đôi nằm ở vị trí trái nhất có thể.

- Sau khi tìm được đôi đó, tên của họ sẽ bị xóa đi, tên của những người còn lại sẽ tự động xích gần lại.

Những nhà tổ chức MasterChef-World Final muốn số đội tham gia là nhiều nhất có thể, vì họ tin rằng càng nhiều đội thi thì cuộc thi càng diễn ra lâu, tiền tài trợ, tiền truyền hình cũng vì thế mà tăng lên theo. Hãy giúp họ xác định xem, sẽ có tối đa bao nhiêu đội tham gia cuộc thi lần này.

Chú ý: Độ chênh lệch khả năng tính bằng trị tuyệt đối hiệu khả năng của hai người

Dữ liệu nhập:

- Một số nguyên N, số thí sinh tham gia cuộc thi (1 ≤ N ≤ 105).

- Dòng 2: Gồm N số nguyên ‘M’ (Men) hoặc W (Woman) tương ứng là giới tính của người thứ i

- Dòng 3: Gồm N số nguyên A1…AN là khả năng nấu nướng của người thứ i (0 ≤ ai ≤ 109)

Kết quả:

- Dòng 1: Số nguyên K, số team lớn nhất tạo được

- K dòng tiếp theo, dòng thứ i gồm hai số nguyên là chỉ số của team thứ i. Chỉ số mỗi team được in ra theo thứ tự từ lớn đến bé

1
2 tháng 1 2020

Ví dụ

-input 4
WMMW
10 11 2 3 -output 2
1 2
3 4
thầy cô hỗ trợ em với ạ đề bài: Bài 1: Tính tổng Trên một màn hình lớn, người ta lần lượt cho hiện ra các số của một dãy gồm N số nguyên không âm a1, a2, …, aN và cứ lặp đi lặp lại như thế (nghĩa là sau khi ai xuất hiện vài giây đến lượt ai+1 xuất hiện, số xuất hiện sau aN là a1). Yêu cầu: Bạn được đề nghị tính tổng của K số nguyên liên tiếp xuất hiện trên màn...
Đọc tiếp

thầy cô hỗ trợ em với ạ

đề bài:

Bài 1: Tính tổng

Trên một màn hình lớn, người ta lần lượt cho hiện ra các số của một dãy gồm N số nguyên không âm a1, a2, …, aN và cứ lặp đi lặp lại như thế (nghĩa là sau khi ai xuất hiện vài giây đến lượt ai+1 xuất hiện, số xuất hiện sau aN là a1).

Yêu cầu: Bạn được đề nghị tính tổng của K số nguyên liên tiếp xuất hiện trên màn hình bắt đầu từ số nguyên thứ B.

Dữ liệu vào: Chứa trong file BAI1.INP gồm hai dòng:

+ Dòng đầu tiên ghi ba số nguyên N, K, và B, 1 £ N £104; 1 £ K £ 2. 104 ; 1 £ B £ 109.

+ Trong N dòng sau, dòng thứ i chứa số ai (ai < 2.109).

Dữ liệu ra: Ghi ra file BAI1.OUT một số là tổng tìm được.

Ví dụ:

BAI1.INP

BAI1.OUT

5 7 6

2

3

6

7

9

32

Bài 2. Đổi giày DOIGIAY.PAS

Bờm là chủ một cửa hiệu bán giày. Một ngày nọ, Bờm kiểm tra kho và thấy trong kho còn lại 2*N chiếc giày, trong đó có N chiếc giày chân trái với kích thước lần lượt là a1, a2, …, aN, N chiếc giày chân phải với kích thước lần lượt là b1, b2, …, bN. Hai chiếc giày chỉ có thể hợp thành một đôi nếu chúng là một cặp trái - phải có cùng kích thước. Bờm quyết định mang một số giày đến nhà sản xuất để đổi.

Hãy xác định giúp Bờm số ít nhất các chiếc giày cần đổi nếu cậu ta muốn cửa hiệu của mình có thể bán được N đôi giày.

Dữ liệu vào từ file văn bản: shoes.inp

· Dòng 1: Số nguyên N (1 ≤ N ≤ 100).

· Dòng 2: N số nguyên a1, a2, …, aN (1 ≤ ai ≤ 1000, i = 1, 2,…, N).

· Dòng 3: N số nguyên b1, b2, …, bN (1 ≤ bi ≤ 1000, i = 1, 2,…, N).

Kết quả ghi ra file văn bản: shoes.out

· Dòng 1: Số nguyên là số giày ít nhất cần đổi.

Ví dụ

shoes.inp

shoes.out

Giải thích

3

1 3 1

3 2 1

1

Đổi 1 chiếc giày chân trái kích thước 1 thành giày chân trái kích thước 2 hoặc đổi 1 chiếc giày chân phải kích thước 2 thành giày chân phải kích thước 1.

Bài 3: TUOI.PAS

Tuổi của cha hiện nay là b tuổi, tuổi của con là c tuổi (b-c > 0 và 0<b,c<150 b, c là các số nguyên dương). Hãy viết chương trình để kiểm tra xem tuổi cha có gấp đôi tuổi con hay không? Nếu đúng thì thông báo “YES”; trường hợp ngược lại, hãy tính số K năm (trước đó hoặc sau đó) tuổi cha gấp đôi tuổi con và thông báo “-K” nếu là K năm trước đó tuổi cha gấp đôi tuổi con hay “K” nếu sau K năm tuổi cha sẽ gấp đôi tuổi con”.

Ví dụ

Tuoi.inp

Tuoi.out

48 24

YES

49 24

1

47 24

-1

Gợi ý: Nếu b>2*c thì tăng i cho đến khi b+i=(c+i)*2 thông báo sau i năm

nếu b< 2*c thì tăng i cho đến khi b-i = 2*(c-i) thông báo trước i năm khác

Bài 4. Giá trị biểu thức BIEUTHUC.PAS

Cho một xâu chỉ chứa các kí tự: chữ số, dấu cộng, dấu trừ, thể hiện một biểu thức số học. Yêu cầu tính giá trị của biểu thức đã cho. các số hạng và giá trị của biểu thức có độ lớn không quá hai tỉ.

Dữ liệu vào từ tệp bieuthuc.inp chứa duy nhất một xâu kí tự thể hiện biểu thức cần tính.

Kết quả đưa ra tệp bieuthuc.out chứa một số nguyên là giá trị của biểu thức.

bieuthuc.inp

bieuthuc.out

12+3-7

8

Bài 6 duongdi.pas

Cho một ma trận vuông cấp n gồm các phần tử là các số nguyên dương. Hãy viết chương trình tìm đường đi từ ô đầu tiên bên trâí đến ô cuối cùng bên phải sao cho trên đường đi đó có tổng các giá trị lớn nhất. biết đường đi chỉ được phép đi sang phải hoặc đi xuống dưới.

Ví dụ

duongdi.inp

Duongdi.out

4

1 2 3 4

2 5 3 1

1 9 7 2

4 5 8 1

1 1

1 2

2 2

3 2

3 3

4 3

4 4

3
9 tháng 2 2020

program Doi_giay;
var n,i,j,d:longint;
a,b:array[1..1000] of longint;
begin
readln(n);
for i:=1 to n do
read(a[i]);
for j:=1 to n do
read(b[j]);
for i:=1 to n do
for j:=1 to n do
if a[i]=b[j] then begin a[i]:=0;
b[j]:=0; end;
for i:=1 to n do
if a[i]<>0 then d:=d+1;
write(d);
end.

31 tháng 12 2019

Mình có bài này ở gmail bạn gửi địa chỉ gmail của bạn để mình chuyển đáp án nhé

Trong kỳ thi học sinh giỏi môn Tin học, em là người đạt giải đặc biệt. Ban tổ chức cho phép em chọn các phần thưởng cho mình. Các phần thưởng xếp thành một dãy được đánh số từ 1 đến N (0 ≤ N ≤ 10000), phần thưởng thứ i có giá trị là ai (1 ≤ ai ≤ 100). Em được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng liên tiếp nhau trong dãy. Em hãy lập chương...
Đọc tiếp

Trong kỳ thi học sinh giỏi môn Tin học, em là người đạt giải đặc biệt. Ban tổ chức cho phép em chọn các phần thưởng cho mình. Các phần thưởng xếp thành một dãy được đánh số từ 1 đến N (0 ≤ N ≤ 10000), phần thưởng thứ i có giá trị là ai (1 ≤ ai ≤ 100). Em được phép chọn các phần thưởng cho mình theo nguyên tắc không chọn 3 phần thưởng liên tiếp nhau trong dãy. Em hãy lập chương trình chọn ra các phần thưởng sao cho tổng giá trị của các phần thưởng nhận được là lớn nhất.

Dữ liệu: Cho trong file PTHUONG.INP gồm các dòng:

- Dòng đầu tiên là số phần thưởng N.

- Dòng tiếp theo ghi N số ai (1 ≤ i ≤ N).

Kết quả: Ghi ra file PTHUONG.OUT gồm ba dòng:

- Dòng đầu ghi tổng giá trị lớn nhất của các phần thưởng đã chọn và số lượng các phần tử được chọn đó.

- Dòng tiếp theo ghi vị trí của các phần thưởng đã chọn theo thứ tự trong dãy.

- Dòng cuối cùng ghi giá trị của các phần thưởng đã chọn theo thứ tự trong dãy.

Ví dụ:

PTHUONG.INP PTHUONG.OUT

7

6 9 1 3 5 10 4

32 5

1 2 4 6 7

6 9 3 10 4

1
20 tháng 2 2020

uses crt;

type mang= array[0..10000 ] of byte;

var a,d,m:mang; dd:array[1..20,1..400] of byte;

b:array [1..10000] of boolean;

r,dem, t,n,max,i,j:integer;

f:text;

procedure doc;

var i:integer;

begin

assign(f,'pthuong.inp');

reset(f);

readln(f,n);

for i:=1 to n do

readln(f,d[i]);

close(f);

end;

function kt( c:mang):boolean;

var i,j:longint;

q:boolean;

begin

i:=1;

q:=true;

while (i<=r-2) and q do

begin

j:=1;

while c[i+j-1]+1=c[i+j] do

j:=j+1;

if j>=3 then q:=false else q:=true;

i:=i+1;

end;

kt:=q;

end;

Procedure print;

var i,tong: byte;

begin if kt(a)=true then

begin dem:=dem+1;

tong:=0;

for i:=1 to r do

begin

dd[dem,i]:= a[i];

tong:=tong+d[a[i]];

end; m[dem]:=tong;

end;

end;

Procedure Find(k:byte);

var j: byte;

begin

if k>r then print else

begin

for j:=1 to n do

if b[j] and (j>a[k-1]) then

begin

a[k]:=j; b[j]:=false;

Find(k+1);

b[j]:=true;

end;

end;

end;

begin

clrscr;

doc;

dem:=0;

r:= n-(n div 3);

for t:=1 to n do

b[t]:=true; a[0]:=0;

Find(1);

max:=m[1];

for i:=1 to dem do

if max< m[i] then max:=m[i];

assign(f,'PTHUONG.OUT');

rewrite(f);

writeln(f,max);

for i:=1 to dem do

if max=m[i] then

begin

j:=1;

while (dd[i,j] <>0) do

begin

write(f,dd[i,j]:2);

j:=j+1;

end;

end;

close(f);

end.

Bạn tham khảo bộ code này nhé.

21 tháng 2 2020

Cảm ơn nhiều ạ.

Có n file đánh số 1, 2, ..., n. File thứ i có kích thước là ai. Cho trước một số đĩa mềm trắng, dung lượng của mỗi đĩa là M. Yêu cầu: Hãy tìm cách ghi file lên các đĩa mềm sao cho số đĩa mềm phải dùng là ít nhất. (Tất nhiên mỗi đĩa không thể chứa quá dung lượng M và mỗi file phải nằm gọn trong một đĩa nào đó chứ không được cắt nhỏ và ghi vào nhiều đĩa khác nhau). Ràng buộc: 1...
Đọc tiếp

Có n file đánh số 1, 2, ..., n. File thứ i có kích thước là ai. Cho trước một số đĩa mềm trắng, dung lượng của mỗi đĩa là M.

Yêu cầu: Hãy tìm cách ghi file lên các đĩa mềm sao cho số đĩa mềm phải dùng là ít nhất. (Tất nhiên mỗi đĩa không thể chứa quá dung lượng M và mỗi file phải nằm gọn trong một đĩa nào đó chứ không được cắt nhỏ và ghi vào nhiều đĩa khác nhau).

Ràng buộc: 1 ≤ n ≤ 100; các ai và M là các số nguyên dương: 1 ≤ ai ≤ M ≤ 10000. ∀i

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

. Dòng 1: Chứa 2 số n, M.

. Các dòng tiếp: Chứa các số từ a1 đến an theo đúng thứ tự đó.

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

. Dòng 1: Ghi số k là số đĩa phải dùng.

. Dòng thứ i trong k dòng tiếp theo: Ghi số hiệu của các file được ghi vào đĩa mềm thứ i.

Ví dụ:

DISKS.INP DISKS.OUT

8 14

9 7 4 3 3 2 8 6

3

1 4 6

7 8

2 3 5

2
18 tháng 2 2020

ko hiểu gì luôn ???lolang

Dãy con tăng DAYCON.PAS Cho một dãy số nguyên a 1 , a 2 ,..., a n . Khi xoá một số phần tử của dãy và giữ nguyên thứ tự của các phần tử còn lại ta được một dãy gọi là dãy con của dãy đã cho. Một dãy con a 1 , a 2 ,..., a k được gọi dãy tăng nếu a i &lt;a i+1 (i = 1..k-1) Yêu cầu: Hãy xác định dãy con tăng có số lượng phần tử lớn nhất. Dữ liệu vào: Cho trong file văn bản DAYCON.INP, có cấu trúc...
Đọc tiếp

Dãy con tăng DAYCON.PAS
Cho một dãy số nguyên a 1 , a 2 ,..., a n . Khi xoá một số phần tử của dãy và giữ
nguyên thứ tự của các phần tử còn lại ta được một dãy gọi là dãy con của dãy đã
cho. Một dãy con a 1 , a 2 ,..., a k được gọi dãy tăng nếu a i &lt;a i+1 (i = 1..k-1)
Yêu cầu: Hãy xác định dãy con tăng có số lượng phần tử lớn nhất.
Dữ liệu vào: Cho trong file văn bản DAYCON.INP, có cấu trúc như sau:
- Dòng 1: Ghi số nguyên N là số phần tử của dãy (1  N  1000)
- Dòng 2: Ghi N số nguyên a 1 , a 2 ,...,a n là các phần tử của dãy (1  a
i 

32000). 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 DAYCON.OUT, theo cấu trúc như sau:
- Dòng 1: Ghi số M là số lượng phần tử lớn nhất của dãy con tìm được.
- Dòng 2: Ghi M số nguyên là chỉ số của M phần tử trong dãy con tìm được
theo thứ tự tăng dần. Các số được ghi cách nhau một dấu cách. (Nếu có nhiều dãy
con thỏa mãn, chỉ cần ghi một dãy con)
Ví dụ:

DAYCON.INP

11
10 100 20 1 2 3 30 20 103 104 80

DAYCON.OUT
6
4 5 6 7 9 10

1
23 tháng 3 2018

HSG à, bài khó vc

#include <bits/stdc++.h>

using namespace std;

long long i,n,x,a[1000],dem;

int main()

{

cin>>n;

for (i=1; i<=n; i++)

{

cin>>a[i];

}

dem=0;

for (i=1; i<=n; i++)

if (a[i]%2==0) dem++;

cout<<dem<<endl;

for (i=1; i<=n; i++)

if (a[i]%2==0) cout<<a[i]<<" ";

return 0;

return 0;

}