Bài 12: Kiểu xâu

lê chí hiếu

Vào ngày chủ nhật cô giáo chủ nhiệm muốn đến thăm “CÂU LẠC BỘ TOÁN TIN” của lớp, nhưng vì cô giáo muốn đến thăm câu lạc bộ vào một thời điểm mà có nhiều các bạn nhất.Với một danh sách bao gồm n bạn (n<50) theo thứ tự từ 1 đến n gồm có thời gian đến và thời gian về (Thời gian đến và thời gian về là một số nguyên dương lớn hơn 0, nhỏ hơn 24 và thời gian đến nhỏ hơn thời gian về ).Em hãy giúp bạn lớp trưởng tìm thời điểm mà có nhiều các bạn có mặt tại câu lạc bộ nhất để thông báo cho cô giáo chủ nhiệm.

Dữ liệu vào là file văn bản có tên thoigian.inp bao gồm:

Dòng đầu là số n.

Dòng 2 là thời gian đến từ 1 đến n của n bạn viết cách nhau một khoảng trống.

Dòng 3 là thời gian về tương ứng từ 1 đến n của n bạn viết cách nhau một khoảng trống.

Dữ liệu ra là file văn bản có tên thoigian.out bao gồm:

Một dòng duy nhất là số nguyên chỉ thời gian mà số thành viên của câu lạc bộ có mặt nhiều nhất, nếu có nhiều giá trị thì các giá trị viết cách nhau một khoảng trống theo thứ tự từ nhỏ đến lớn.

Ví dụ:

thoigian.inp

thoigian.out

10

10

1 2 5 7 8 13 15 4 3 9

4 7 12 10 11 15 20 14 20 16

Minh Lê
24 tháng 11 2019 lúc 23:01

#include<bits/stdc++.h>

using namespace std;

int main(){

freopen("thoigian.inp", "r", stdin);

freopen("thoigian.out", "w", stdout);

short n, a[25]={}, inp, res=0;

cin>>n;

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

cin>>inp;

for(short j=inp; j<=24; j++) a[j]++;

}

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

cin>>inp;

for(short j=inp+1; j<=24; j++) a[j]--;

}

for(short i:a) res=max(res, i);

for(short i=1; i<=24; i++) if(a[i]==res) cout<<i<<' ';

}

*Theo như bộ test, lúc 9h và 10h đều có số thành viên có mặt nhiều nhất là 6 nên mình in cả hai theo đúng yêu cầu của đề nhé <3.

Bình luận (0)
 Khách vãng lai đã xóa
Minh Lệ
8 tháng 11 2019 lúc 14:13

Ở bộ test của bạn số thời gian là 6 có học sinh tham dự bằng 10. Nên ở bài làm của mình sẽ làm thời gian lớn nhất trong số thời gian trùng học sinh tham dự.

Program hotrotinhoc;

const fi='thoigian.inp';

fo='thoigian.out';

var i,n,max,j,max1: integer;

f: text;

c,a,b: array[1..10000] of integer;

procedure ip;

begin

assign(f,fi);

reset(f);

readln(f,n);

for i:=1 to n do

read(f,a[i]);

readln(f);

for i:=1 to n do

read(f,b[i]);

close(f);

end;

procedure out;

begin

assign(f,fo);

rewrite(f);

max:=0; max1:=0;

for i:=1 to n do

begin

for j:=a[i] to b[i] do

inc(c[j]);

end;

for i:=1 to 24 do

if c[i]>max then max:=c[i];

for i:=1 to 24 do

if c[i]=max then

begin

if i>max1 then max1:=i;

end;

write(f,max1);

close(f);

end;

begin

ip;

out;

end.

Bình luận (0)
 Khách vãng lai đã xóa
Minh Lệ
19 tháng 11 2019 lúc 17:01

Program hotrotinhoc;

const fi='thoigian.inp';

fo='thoigian.out';

var i,n,max,j,max1: integer;

f: text;

c,a,b: array[1..10000] of integer;

procedure ip;

begin

assign(f,fi);

reset(f);

readln(f,n);

for i:=1 to n do

read(f,a[i]);

readln(f);

for i:=1 to n do

read(f,b[i]);

close(f);

end;

procedure out;

begin

assign(f,fo);

rewrite(f);

max:=0; max1:=0;

for i:=1 to n do

begin

for j:=a[i] to b[i] do

inc(c[j]);

end;

for i:=1 to 24 do

if c[i]>max then max:=c[i];

for i:=1 to 24 do

if c[i]=max then

begin

if i>max1 then max1:=i;

end;

write(f,max1);

close(f);

end;

begin

ip;

out;

end.

-Ở bộ test của bạn số thời gian là 6 có học sinh tham dự bằng 10. Nên ở bài làm của mình sẽ làm thời gian lớn nhất trong số thời gian trùng học sinh tham dự

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
lê chí hiếu
Xem chi tiết
NGUYỄN VIẾT LUẬN
Xem chi tiết
Coming Home
Xem chi tiết
Coming Home
Xem chi tiết
nguyễn an phát
Xem chi tiết
An Hoài Nguyễn
Xem chi tiết
Nguyễn khánh thành
Xem chi tiết
giàng văn thương
Xem chi tiết
Olives
Xem chi tiết