De thi tin hoc thanh pho tam diep

Chia sẻ bởi phan van yen | Ngày 16/10/2018 | 48

Chia sẻ tài liệu: de thi tin hoc thanh pho tam diep thuộc Tin học 7

Nội dung tài liệu:

Bài II(10 điểm): DÃY SỐ.
Cho số nguyên dương S và dãy số gồm N số nguyên dương F1, F2, ..., FN. Dãy số đã cho được gọi là dãy tăng dần nếu: Fi  Fi+1 i  ( hay F1 F2  F3  ...  FN ).
Chúng ta gọi hai số hạng Fi1 và Fi2 trong dãy đã cho (với i1 i2; i1,i2  ):
- Là một “cặp đôi xung khắc” nếu Fi1 + Fi2 = S.
- Là một “cặp đôi lý tưởng” nếu chúng cùng có ba chữ số, các chữ số của số hạng này giống hệt của số hạng kia nhưng khác về thứ tự xuất hiện - ví dụ 123 và 132 hay 121 và 211 là các cặp đôi lý tưởng còn 121 và 122 hay 457 và 457 thì không phải.
Yêu cầu: Cho biết S và dãy số F1, F2, ..., FN. Hãy xác định xem dãy đã cho có phải dãy tăng dần hay không, tính số cặp đôi xung khắc và tìm một cặp đôi lý tưởng (nếu có) trong dãy đã cho.
Dữ liệu vào: Dữ liệu vào của bài toán được cho trong tệp tin DAYSO.INP với cấu trúc như sau:
- Dòng đầu tiên gồm hai số N và S (N50000, S <1000).
- Dòng thứ i trong N dòng tiếp theo chứa một số là số Fi của dãy (Fi < 500).
Dữ liệu ra: Kết quả ghi ra trên màn hình (hoặc ghi ra file DAYSO.OUT)bốn dòng:
- Dòng đầu ghi ba số N, S và FN.
- Dòng thứ hai ghi CO nếu dãy đã cho là dãy tăng dần, ghi KHONG nếu ngược lại.
- Dòng thứ ba ghi một số là số cặp đôi xung khắc trong dãy đã cho.
- Dòng thứ tư ghi hai số là một cặp đôi lý tưởng tìm được trong dãy đã cho, nếu không có cặp đôi lý tưởng nào thì ghi hai số 0.
Ví dụ:
DAYSO.INP
Kết quả trên màn hình (hoặc file DAYSO.OUT)

5 5
1
2
3
4
5
5 5 5
CO
2
0 0

10 111
110
110
1
1
5
5
10
10
10
101
10 111 101
KHONG
7
110 101

Hạn chế kỹ thuật:
- Ghi tên file bài làm là DAYSO.PAS
- Dữ liệu vào là chính xác không cần kiểm tra.
- Có khoảng 30% số bộ test có thể nhập dữ liệu vào từ bàn phím.
- Có khoảng 60% số bộ test có N < 1000.

Bài 2 - DAYSO.PAS}
uses crt;
const fi = `dayso.inp`;
max = 500;
var a:array[1..500] of word;
so:array[1..4,0..9,0..9] of boolean;
f:text; tangdan:boolean;
n,s,fn,socu:word; Tongxk:longint;
procedure nhap;
var i,k:word;
begin
fillchar(a,sizeof(a),0);
assign(f,fi);
reset(f);
socu:=0; tangdan:=true;
readln(f,n,s);
for i:= 1 to n do
begin
readln(f,k);
inc(a[k]);
if k socu:=k;
if k>100 then
so[k div 100,(k div 10)mod 10,k mod 10]:=true;
end;
fn:=k;
close(f);
end;
procedure demxungkhac;
var i:word;
begin
tongxk:=0;
for i:= 1 to ((s-1)div 2) do
tongxk:=tongxk+a[i]*a[s-i];
if not odd(s) then
begin
i:=s div 2;
tongxk:=tongxk+(a[i]*(a[i]-1) div 2);
end;
end;
procedure timlytuong;
var i,j,k:byte;
begin
for i:=1 to 4 do
for j:=0 to 9 do
for k:=0 to 0 do
if so[i,j,k] then
begin
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: phan van yen
Dung lượng: 42,00KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)