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