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.

Viết chương trình C++.Có n người xếp thành hàng để mua vé. Thời gian bán vé cho người thứ i là ti . Nhân viên bán vé mỗi lần chỉ bán vé cho một người, người này mua vé xong mới đến lượt người kế tiếp. Trong xấp vé mà nhân viên đang bán có một vé cặp (gồm 2 vé) và vé cặp này phải bán cho một người với thời gian bán vẫn không thay đổi, tức là nếu người thứ i mua một vé với...
Đọc tiếp

Viết chương trình C++.Có n người xếp thành hàng để mua vé. Thời gian bán vé cho người thứ i là ti . Nhân viên bán vé mỗi lần chỉ bán vé cho một người, người này mua vé xong mới đến lượt người kế tiếp. Trong xấp vé mà nhân viên đang bán có một vé cặp (gồm 2 vé) và vé cặp này phải bán cho một người với thời gian bán vẫn không thay đổi, tức là nếu người thứ i mua một vé với thời gian ti thì khi mua vé cặp này vẫn tốn thời gian là ti. Vì mỗi người chỉ có nhu cầu mua một vé nên khi một người nào đó mua vé cặp này thì anh ta sẽ nhượng lại một vé cho người đứng phía sau mình, và người được nhượng vé này sẽ rời khỏi hàng cùng với người phía trước mà không phải chờ mua vé nữa. Yêu cầu: Hãy cho biết nhân viên bán vé phải bán chiếc vé cặp cho người nào để tổng thời gian bán vé là ít nhất. Dữ liệu vào: Cho từ tệp văn bản TICKET.INP gồm hai dòng: • Dòng thứ nhất ghi số nguyên dương n (2

1
20 tháng 11 2023

#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

struct Person {
    int index;  // Vị trí của người trong hàng
    int time;   // Thời gian mua vé của người
};

bool compareByTime(const Person& a, const Person& b) {
    return a.time < b.time;
}

int main() {
    // Đọc dữ liệu từ tệp TICKET.INP
    std::ifstream inputFile("TICKET.INP");
    if (!inputFile.is_open()) {
        std::cerr << "Khong the mo tep TICKET.INP" << std::endl;
        return 1;
    }

    int n;
    inputFile >> n;

    std::vector<Person> people;

    for (int i = 1; i <= n; ++i) {
        Person person;
        person.index = i;
        inputFile >> person.time;
        people.push_back(person);
    }

    // Đóng tệp TICKET.INP
    inputFile.close();

    // Sắp xếp danh sách người theo thời gian mua vé tăng dần
    std::sort(people.begin(), people.end(), compareByTime);

    // Tìm người mua vé cặp để tổng thời gian bán vé là ít nhất
    int totalTime = 0;
    int minTotalTime = INT_MAX;
    int bestPairIndex = -1;

    for (int i = 0; i < n - 1; ++i) {
        totalTime += people[i].time;

        if (totalTime + people[i + 1].time < minTotalTime) {
            minTotalTime = totalTime + people[i + 1].time;
            bestPairIndex = i;
        }
    }

    // Ghi kết quả ra màn hình
    std::cout << "Nguyen vien ban ve can ban ve cap cho nguoi thu: " << people[bestPairIndex + 1].index << std::endl;

    return 0;
}

30 tháng 10 2019

đề thi khảo sát hsg trường thôi mà mn

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é

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

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
19 tháng 11 2017

Bài 1:

Input: số nguyên N và dãy a1,...,an
output: số lượng số dương trong dãy.
Ý tưởng:
khởi gán dem=0
lần lượt chia các a[i] (i:1->N) cho 2
nếu ai chia hết cho 2 dư 0 thì dem=dem+1
diễn tả thuật toán
liệt kê:
b1: nhập số nguyên dương N và dãy a1, a2,..,an
b2: i<-1 , dem<-0
b3: i>N thì đưa ra biến dem rồi kthúc
b4: ai chia hết cho 2 thì dem<-dem+1
b5: i<-i+1, quay lại bc 3

20 tháng 11 2017

Program bai1;

uses crt;

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

n,i,dem: integer;

begin

clrscr;

write('nhap so n ='); readln(n);

for i:= 1 to n do

begin

write('nhap a[',i,'] ='); readln(a[i]);

end;

dem:=0;

for i:= 1 to n do

if a[i] > 0 then dem:=dem+1;

write('co ',dem,' so duong trong day ');

readln;

end.

var i,n,d:word;
t,b,kt:array[1..10] of word;

procedure nhap;
var f:text;
begin
assign(f,'dulieu.inp');
reset(f);
readln(f,n);
for i:=1 to n do read(f,t[i]);
close(f);
fillchar(b,sizeof(kt),0);
end;

procedure tailap;
var i,j,d:integer;
begin
for i:=1 to n do
begin
d:=0;
for j:=1 to n do
begin
if b[j]=0 then d:=d+1;
if d=t[i]+1 then break;
end;
b[j]:=i;
end;
end;

BEGIN
nhap;
tailap;
for i:=1 to n do write(b[i],' ');
readln
END.