about summary refs log tree commit diff
path: root/12/TP-HN-2015
diff options
context:
space:
mode:
Diffstat (limited to '12/TP-HN-2015')
-rw-r--r--12/TP-HN-2015/README.md83
-rw-r--r--12/TP-HN-2015/bai1.pas38
-rw-r--r--12/TP-HN-2015/bai2.pas54
3 files changed, 0 insertions, 175 deletions
diff --git a/12/TP-HN-2015/README.md b/12/TP-HN-2015/README.md
deleted file mode 100644
index 2ba87d2..0000000
--- a/12/TP-HN-2015/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-# KÌ THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ LỚP 12 NĂM HỌC 2015 - 2016
-
-SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ NỘI
-
-Môn thi: TIN HỌC
-
-Ngày thi: 02/10/2015
-
-Thời gian làm bài: 180 phút
-
-## Tổng quan bài thi
-
-|  Bài  | Tệp chương trình | Tệp dữ liệu vào | Tệp kết quả ra | Thời gian |
-| :---: | :--------------: | :-------------: | :------------: | :-------: |
-|   1   |     BAI1.PAS     |     BAI1.INP    |    BAI1.OUT    |   2 giây  |
-|   2   |     BAI2.PAS     |     BAI2.INP    |    BAI2.OUT    |   2 giây  |
-|   3   |     BAI3.PAS     |     BAI3.INP    |    BAI3.OUT    |   2 giây  |
-|   4   |     BAI4.PAS     |     BAI4.INP    |    BAI4.OUT    |   2 giây  |
-
-## Bài 1. Đếm nghiệm (6 điểm)
-
-Cho phuơng trình: ax + by = c (x, y là ẩn; a, b, c là số nguyên dương nhỏ hơn
-10<sup>5</sup>).
-
-### Yêu cầu
-
-Hãy đếm số nghiệm nguyên dương (x, y) của phương trình đã cho thoả mãn x, y
-nguyên tố cùng nhau.
-
-### Dữ liệu vào
-
-Một dòng duy nhất chứa ba số a, b, c cách nhau bởi một dấu cách.
-
-### Dữ liệu ra
-
-Số nghiệm (x, y) thoả mãn yêu cầu trên.
-
-### Ví dụ
-
-| BAI1.INP | BAI2.OUT |         Giải thích        |
-| -------- | -------- | ------------------------- |
-| 1 2 10   | 2        | (x, y) ∈ {(4, 3), (8, 1)} |
-
-## Bài 2. Điều hoà (5 điểm)
-
-Một trường THPT có n lớp học được đánh số thứ tự từ 1 đến n cần trang bị điều
-hoà. Mỗi lớp một điều hoà với công suất phụ thuộc vào diện tích của từng lớp.
-Lớp thứ i cần lắp điều hoà với công suất không bé hơn a<sub>i</sub> (W). Nhà
-trường đã tham khảo các cửa hàng điện lạnh và lập được bảng danh mục các loại
-điều hoà kèm theo công suất và giá tương ứng.
-
-### Yêu cầu
-
-Cho trước yêu cầu điều hoà với công suất tương ứng nhỏ nhất của từng lớp học
-cũng như danh mục các loại điều hoà. Hãy giúp nhà trường tính số tiền nhỏ nhất
-cần bỏ ra để trang bị điều hoà cho tất cả n lớp học.
-
-### Dữ liệu vào
-
-* Dòng đầu là số tự nhiên n (1 ≤ n ≤ 50000) là số lượng lớp học,
-* Dòng thứ hai chứ n số nguyên a<sub>i</sub> (1 ≤ a<sub>i</sub> ≤ 1000) là công
-  suất nhỏ nhất của điều hoà cần trang bị cho lớp i.
-* Dòng thứ 3 chứa số nguyên m (1 ≤ m ≤ 50000) là số lượng các model điều hoà
-  khác nhau (mỗi model có số lượng điều hoà không hạn chế).
-* m dòng tiếp theo, mỗi dòng chứa 2 số nguyên b<sub>j</sub>, c<sub>j</sub> (1 ≤
-  b<sub>j</sub>, c<sub>j</sub> ≤ 1000) lần lượt là công suất và giá tương ứng
-  của loại điều hoà model j.
-
-### Kết quả ra
-
-Tổng số tiền nhỏ nhất để mua đủ n điều hoà cho các lớp của trường.
-
-### Ví dụ
-
-| BAI2.INP | BAI2.OUT |               Giải thích               |
-| -------- | -------- | -------------------------------------- |
-| 3        | 13       | Lớp 1 mua điều hoà công suất 2, giá 3  |
-| 1 2 3    |          | Lớp 2 mua điều hoà công suất 2, giá 3  |
-| 4        |          | Lớp 3 mua điều hoà công suất 10, giá 7 |
-| 1 10     |          |                                        |
-| 1 5      |          |                                        |
-| 10 7     |          |                                        |
-| 2 3      |          |                                        |
diff --git a/12/TP-HN-2015/bai1.pas b/12/TP-HN-2015/bai1.pas
deleted file mode 100644
index 312f2b4..0000000
--- a/12/TP-HN-2015/bai1.pas
+++ /dev/null
@@ -1,38 +0,0 @@
-var
-  a, b, c, x, v: smallint;
-  f: text;
-
-
-function gcd(m, n: smallint): smallint;
-  var
-    p: smallint;
-
-  begin
-    while (n <> 0) do
-      begin
-        p := m mod n;
-        m := n;
-        n := p
-      end;
-
-    exit(m)
-  end;
-
-
-begin
-  assign(f, 'BAI1.INP');
-  reset(f);
-  read(f, a, b, c);
-  close(f);
-
-  v := 0;
-  for x := 1 to c div a do
-    if ((c - a * x) mod b = 0) and
-       (gcd(x, (c - a * x) div b) = 1) then
-      inc(v);
-
-  assign(f, 'BAI1.OUT');
-  rewrite(f);
-  writeln(f, v);
-  close(f)
-end.
diff --git a/12/TP-HN-2015/bai2.pas b/12/TP-HN-2015/bai2.pas
deleted file mode 100644
index 858d2b1..0000000
--- a/12/TP-HN-2015/bai2.pas
+++ /dev/null
@@ -1,54 +0,0 @@
-var
-  n, m, i, b, c, j: word;
-  a: array of word;
-  f: text;
-  bc: array[1..1000, 1..1000] of boolean;
-  bestprice: array[1..1000] of word;
-  v: longint = 0;
-
-
-begin
-  assign(f, 'BAI2.INP');
-  reset(f);
-
-  read(f, n);
-  setlength(a, n);
-  for i := 0 to n - 1 do
-    read(f, a[i]);
-
-  fillchar(bc, sizeof(bc), false);
-  readln(f, m);
-  for i := 1 to m do
-    begin
-      read(f, b, c);
-      bc[b][c] := true
-    end;
-
-  close(f);
-
-  for i := 1 to 1000 do
-    bc[i][1000] := true;
-
-  for i := 1 to 1000 do
-    if bc[1000][i] then
-      begin
-        bestprice[1000] := i;
-        break
-      end;
-
-  for i := 999 downto 1 do
-    begin
-      for j := 1 to bestprice[i + 1] do
-        if bc[i][j] then
-          break;
-      bestprice[i] := j
-    end;
-
-  for i := 0 to n - 1 do
-    inc(v, bestprice[a[i]]);
-
-  assign(f, 'BAI2.OUT');
-  rewrite(f);
-  writeln(f, v);
-  close(f)
-end.