Olympic Tin học và CNTT cấp trường. văn bản của các vấn đề Olympic. Mô tả hệ thống đánh giá giải pháp vấn đề

Olympic toàn Nga dành cho học sinh về KHOA HỌC THÔNG TIN

Sân khấu học đường

lớp 9

A1.

Có bao nhiêu số 0 có nghĩa trong ký hiệu nhị phân của số 48?

1) 1 2) 2 3) 4 4) 6

A2.

Giả sử mỗi ký tự được mã hóa 16 bit, hãy ước tính khối lượng thông tin của cụm từ Pushkin sau đây trong bảng mã Unicode:

Một thói quen đã được ban cho chúng ta từ trên cao: Đó là sự thay thế cho hạnh phúc.

1) 44 bit 2) 704 bit 3) 44 byte 4) 704 byte

A3.

Tính tổng các số x và y, với x = 271 8, y = 11110100 2 . Trình bày kết quả ở hệ thập lục phânĐang tính toán.

1) 151 16 2) 1AD 16 3) 412 16 4) 10B 16

A4.

Xác định giá trị của một biến c sau khi thực hiện đoạn chương trình sau:

a:= 100;

b:= 30;

a:= a – b*3;

nếu a > b thì

C:= a – b

khác c:= b – a;

1) 20 2) 70 3) –20 4) 180

A5.

Với số X nào thì khẳng định đúng? X > 1  ((X

1) 1 2) 2 3) 3 4) 4

A6.

Ký hiệu F chỉ ra một trong những điều sau đây: biểu thức logic từ ba đối số: X, Y, Z. Một đoạn bảng chân lý của biểu thức F được đưa ra (xem bảng bên phải). Biểu thức nào phù hợp với F?

1) X  ¨Y  Z 2) X  Y  Z 3) X  Y  иZ 4 ) иX  Y  иZ

A7.

Bảng thể hiện chi phí vận chuyển hành khách giữa các nước láng giềng khu định cư. Cung cấp một lược đồ phù hợp với bảng.

A8.

Giáo viên làm việc trong danh mục
D:\Tài liệu dạy học\lớp 10\Bài tập thực hành.
Sau đó tôi chuyển lên cấp cao hơn trong cây thư mục và đi xuống thư mục con
Bài giảng và xóa tập tin khỏi nó Giới thiệu . Nó như thế nào Họ và tên tập tin mà giáo viên đã xóa?

1) D:\Tài liệu bài học\lớp 10\Giới thiệu

2) D:\Tài liệu dạy học\lớp 10\Bài giảng\Giới thiệu

3) D:\Tài liệu bài học\Bài giảng\Giới thiệu

4) D:\Tài liệu bài học\Giới thiệu\Bài giảng

A9.

Dưới đây là các đoạn của bảng cơ sở dữ liệu học sinh của trường:

Mã lớp

Lớp học

1-A

3-A

4-A

4-B

6-A

6-B

6-B

9-A

10-A

Họ

Mã lớp

Chiều cao

Ivanov

Petrov

Sidorov

Koshkin

Lozhkin

Nozhkin

Tarelkin

Miskin

Chashkin

Học sinh cao nhất lớp nào?

1) 3-A 2) 4-A 3) 6-A 4) 9-A

A10.

Độ phân giải màn hình của màn hình là 1024 x 768 pixel, độ sâu màu là 16 bit. Dung lượng bộ nhớ video cần thiết cho chế độ đồ họa này là bao nhiêu?

1) 6 MB 2) 256 byte 3) 4 KB 4) 1,5 MB

A11.

Ô C2 chứa công thức=$E$3+D2 . Công thức sẽ có dạng gì sau khi sao chép ô C2 sang ô B1?

1) =$E$3+C1 2) =$D$3+D2 3) =$E$3+E3 4) =$F$4+D2

A12.

Đã cho là một đoạn của bảng tính:

B1+1

A1+2

B2-1

Sau khi thực hiện tính toán, một biểu đồ được xây dựng bằng cách sử dụng các giá trị của phạm vi ô A1:A4. Chỉ ra sơ đồ kết quả.

A13.

Một người biểu diễn nhất định có thể thực hiện ba lệnh:

FD – tiến về phía trước một số bước xác định

RT – rẽ phải theo số độ quy định

LẶP LẠI – lặp lại lệnh

Bài tập giai đoạn cấp trường Olympic Tin học lớp 7-11


"Lớp 7-8_I"

Olympic toàn Nga dành cho học sinh về khoa học máy tính. 2017 -2018.

Giai đoạn thành phố, lớp 7-8

Bài toán A. Xe buýt

N trẻ em và M K

Định dạng tệp đầu vào

N, MK

Định dạng tập tin đầu ra

Dữ liệu đầu vào

đầu ra

Vấn đề của V. Lavochka

Định dạng tệp đầu vào

L- chiều dài băng ghế và K

Dòng thứ hai theo sau K

Định dạng tập tin đầu ra

Dữ liệu đầu vào

đầu ra

13 4
1 4 8 11

14 6
1 6 8 11 12 13

Vấn đề C. Bầu cử

N N biểu tượng - điểm cộng và điểm trừ.

có hiệu lực phiếu bầu.

Định dạng tệp đầu vào

N- số lượng các bên và M N M

Trong những điều sau đây M N

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

+--
+--
-+-
+-+

+
-
-
-
-

Định dạng tệp đầu vào

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Vấn đề E Đá

Họ nằm trên bàn N

    1 hoặc 2 viên đá nếu N chia hết cho 3;

    1 hoặc 3 nếu N

    1, 2 hoặc 3 nếu N

Định dạng tệp đầu vào

Nhập số nguyên 0 N

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Trang 6 trên 6

Xem nội dung tài liệu
"lớp 9-11_I"

Olympic toàn Nga dành cho học sinh về khoa học máy tính. 2017 -2018.

Tham quan thành phố, lớp 9-11

Vấn đề A. Tỷ giá

MỘT sẽ đến trước con gián số. B".

Định dạng tệp đầu vào

KN K. Mỗi điều sau đây N MỘT, B, C, D, không vượt quá KMỘT sẽ đến trước con gián số. B" và "Con gián số. C sẽ đến trước con gián số. D".

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

3 2
2 1 2 3
1 2 3 2

3 4
1 2 1 3
1 2 3 1
1 2 2 3
1 2 3 2

Vấn đề B. Đua xe

N

N xi vi

định dạng đầu vào

N N xivi Tôi xivi 1000).

Định dạng đầu ra

Ví dụ

Dữ liệu đầu vào

đầu ra

Nhiệm vụ C. Kiểm tra

Định dạng tệp đầu vào

N (1 ≤ N Một 1 , Một 2 , . . . , Một N N số nguyên b 1 , b 2 , . . . , b N Một Tôib Tôi các bất đẳng thức 1 ≤ là đúng Một Tôi , b Tôi ≤ 10.

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Vấn đề D Cuộc thi đua xe Karting

N tôi

Yêu cầu

Định dạng tệp đầu vào

Ntôi (1Ntôi 100). Tiếp theo 2 N

Dòng thứ hai chứa tôi tôi

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Sumaher
2 1 1

Barikelo
2 1 2

Vấn đề E Bằng cấp

N w- về chiều rộng và h- về chiều cao.

w TRÊN h

Yêu cầu

Định dạng tệp đầu vào

w, h, N (1whN 109).

Định dạng tập tin đầu ra

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

minh họa chẳng hạn:

Trang 5 trên 5

Xem nội dung tài liệu
“Khuyến nghị về phương pháp phân tích các vấn đề Olympic”

Sân khấu thành phố Olympic toàn Nga học sinh khoa học máy tính năm 2017-2018 năm học

lớp 7-8

Vấn đề A. Xe buýt.

Để đến trại sức khỏe trẻ em, ban tổ chức quyết định đặt xe buýt. Được biết họ sắp đi cắm trại N trẻ em và M người lớn. Mỗi xe buýt có thể chứa K Nhân loại. Phải có ít nhất hai người lớn trên mỗi xe buýt chở trẻ em.

Xác định xem liệu có thể gửi tất cả trẻ em và người lớn đến trại hay không, và nếu có, số lượng xe buýt tối thiểu cần thiết để đặt hàng cho việc này là bao nhiêu.

Định dạng tệp đầu vào

Đầu vào chương trình nhận 3 số tự nhiên, được viết cách nhau bằng dấu cách - N, MK, mỗi số không vượt quá 10.000.

Định dạng tập tin đầu ra

In số lượng xe buýt được đặt hàng. Nếu không thể gửi mọi người đến trại, hãy in 0 (không).

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Giải pháp.

Thuật toán:

Thứ nhất: chúng ta cần tính đến việc K có thể lấy giá trị nhỏ hơn hoặc bằng 2. Trong trường hợp này, đầu ra là 0, vì chúng ta sẽ buộc phải đưa người lớn lên mỗi xe buýt (và trẻ em sẽ không bao giờ rời đi). Bây giờ hãy xem xét trường hợp khi K lớn hơn hai: trong trường hợp đó, sẽ cần chính xác n/(k-2) xe buýt để chở trẻ em. Lưu ý rằng nếu n không chia hết cho k-2 thì bạn sẽ cần thêm một bus nữa. Ngoài ra, chúng tôi sẽ không thể rời đi nếu số lượng người lớn chia cho hai ít hơn số lượng xe buýt cần thiết để chở trẻ em. Trong tất cả các trường hợp khác, câu trả lời sẽ là (m+n)/k, nhưng nếu (m+n) không chia hết cho k thì vẫn còn một bus nữa.

Chương trình:

var a,b,c,k,n,p: số nguyên;

k:=a div(c-2); //2

nếu a mod (c-2) 0 thì inc(k);

if (a+b) mod c 0 thì inc(k);

Nhiệm vụB. Băng ghế

Những chiếc ghế dài trong công viên được bố trí như sau. Một số khối đá granit hình khối giống hệt nhau được đặt thành một hàng và một tấm đá granit được đặt trên chúng (xem hình). Kiến trúc sư theo chủ nghĩa hiện đại quyết định rằng sẽ thú vị hơn nếu tất cả các ghế dài có cách sắp xếp chân bằng khối đá granit khác nhau (và không nhất thiết phải đối xứng). Đồng thời, chúng được đặt sao cho tấm không bị rơi: đối với điều này, chỉ cần có ít nhất một khối đá granit hoặc một phần của khối đó ở cả bên trái và bên phải của tâm tấm (đặc biệt là , nếu tâm của tấm rơi vào giữa một khối nào đó thì ở bên trái và bên phải của tâm tấm có một phần của khối và tấm không bị đổ).

Bọn cướp phát hiện ra rằng chúng có thể kéo từng khối đá granit nằm ở rìa (cả bên trái và bên phải) ra từng khối một. Họ muốn kéo càng nhiều khối càng tốt từ dưới băng ghế mà nó không bị rơi (các khối còn lại không thể di chuyển được). Xác định những khối họ nên rời đi.

Định dạng tệp đầu vào

Dòng đầu tiên của dữ liệu nhập chứa hai số: L- chiều dài băng ghế và K- số lượng chân khối đá granite. Cả hai số đều là số tự nhiên và không vượt quá 10.000.

Dòng thứ hai theo sau K các số nguyên không âm khác nhau xác định vị trí của mỗi chân. Vị trí của chân được xác định bằng khoảng cách từ mép trái của tấm đến mép trái của chân (chân là hình lập phương có kích thước 1x1x1). Các chân được liệt kê từ trái sang phải (tức là bắt đầu từ chân có khoảng cách gần mép trái nhất).

Định dạng tập tin đầu ra

Bạn cần liệt kê những chân mà bọn cướp cần bỏ lại. Đối với mỗi chân, bạn cần trả về vị trí của nó như được chỉ định trong dữ liệu đầu vào. Các chân phải được liệt kê từ trái sang phải, theo thứ tự xuất hiện trong dữ liệu đầu vào.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

13 4
1 4 8 11

14 6
1 6 8 11 12 13

Ví dụ thứ hai tương ứng với chiếc ghế dài trong hình.

Giải pháp.

Thuật toán:

Hãy biểu thị tọa độ (vị trí)Tôi chân như dTôi. Hãy tìm những con số bên tráiPhải- số của chân ngoài cùng bên phải, ít nhất một phần của chúng nằm ở bên trái giữa băng ghế và chân ngoài cùng bên trái, ít nhất một phần của chúng nằm ở bên phải của giữa băng ghế, tương ứng:bên trái= tối đa Tôi 2 dTôi L, Phải= phút Tôi 2 (dTôi+1) L. Nếu cuối cùng bên trái= Phải(đó là L kỳ quặc và Tôi dTôi= 2 L ), thì bạn cần xuất ra một sốdbên trái, nếu không - đầu tiêndbên trái, sau đó dPhải.

Chương trình:

var L,k,n,i: longint;//0..10 000

a: mảng boolean;

for i:=1 to k bắt đầu

if (L mod 2 0) và (a) thì bắt đầu

đối với i:=(L-1) div 2 downto 0 do

nếu a[i] thì bắt đầu

đối với i:=l div 2 đến L-1 làm gì

nếu a[i] thì bắt đầu

Vấn đềC. Bầu cử

Trong cuộc bầu cử Duma Quốc gia, nó đã được đưa vào phiếu bầu N các bữa tiệc. Máy quét phiếu điện tử truyền thông tin về mỗi lá phiếu tới định dạng sau: nếu có dấu trong ô tương ứng của lá phiếu thì máy quét sẽ truyền + (cộng), nếu không thì truyền - (trừ). Vì vậy, nó chuyển trình tự từ N biểu tượng - điểm cộng và điểm trừ.

Lá phiếu được coi là hợp lệ nếu có dấu chấm ở đúng một ô. Phiếu bầu không hợp lệ không được tính vào việc kiểm phiếu kết quả bầu cử.

Một đảng chỉ vào Duma Quốc gia nếu giành được ít nhất 7% tổng số có hiệu lực phiếu bầu.

Cần phải hiển thị số lượng (theo thứ tự ghi trên lá phiếu) của tất cả các đảng được bầu vào Đuma Quốc gia.

Định dạng tệp đầu vào

Dòng đầu tiên chứa hai số cách nhau bởi dấu cách: N- số lượng các bên và M- số lượng phiếu bầu Cả hai số đều là số tự nhiên N M

Trong những điều sau đây M Các dòng chứa thông tin nhận được từ các lá phiếu. Mỗi dòng là một chuỗi các N ký tự + hoặc - (không có dấu cách).

Đảm bảo có ít nhất một lá phiếu hợp lệ.

Định dạng tập tin đầu ra

In, phân cách bằng dấu cách, số đảng đã được đưa vào Duma, theo thứ tự tăng dần. Nếu không có bên nào vào Duma thì không cần phải rút gì cả.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

+--
+--
-+-
+-+

+
-
-
-
-

Giải pháp.

Thuật toán:

Cùng viết nào chức năng đặc biệt ai, đối với một dòng phiếu nhất định trả về số ứng cử viên được chọn trong lá phiếu này hoặc 0 cho lá phiếu không hợp lệ (để thực hiện việc này, chỉ cần lặp qua dòng phiếu một lần, ghi nhớ câu trả lời hiện tại). Bây giờ đối với mỗi lá phiếu, chúng tôi gọi người thực hiện lá phiếu đó và nếu kết quả không như vậy bằng 0, tăng thêm 1 sốK(số phiếu hợp lệ) vàai(số phiếu bầu hợp lệ cho đảng có số bằng kết quả của chức năng who). Tất cả những gì còn lại là hiển thị mọi thứTôi sao cho 100 gi 7 K.

Chương trình:

($h+)

cờ :boolean ;

a:mảng longint;

n,m,max,k,i,j:longint;

for i:=1 to m do

với j:=1 theo chiều dài thì làm

nếu s[j]="+" thì

nếu không gắn cờ thì

với j:=1 theo chiều dài thì làm

nếu s[j]="+" thì

for i:=1 to n do

nếu a[i]=max*0,07 thì

Vấn đề D Vé tàu

Trên các chuyến tàu ưu tú mới, mỗi hành khách đều được hưởng một chỗ ngồi. Đương nhiên, số lượng chỗ ngồi có hạn và có thể không đủ cho tất cả mọi người. Tuyến tàu đi qua N ga, được đánh số từ 0 đến N-1. Khi một người muốn mua vé, anh ta gọi hai số x và y - số của các ga mà anh ta muốn đi và đến. Nếu có ít nhất một chỗ ngồi trong khu vực này tại thời điểm mua, một vé sẽ được bán cho anh ta, nếu không sẽ hiển thị thông báo “không có vé” và vé sẽ không được bán. Nhiệm vụ của bạn là viết một chương trình phục vụ các loại yêu cầu này theo thứ tự chúng đến.

Định dạng tệp đầu vào

Dòng đầu tiên chứa 3 số N – số ga (1  N ≤ 10.000), K – số ghế trên tàu (1  K  1000) và M – số lượng yêu cầu (1  M  50.000) . M dòng tiếp theo mô tả các truy vấn, mỗi dòng chứa hai số x và y (0 ≤ x

Định dạng tập tin đầu ra

Đối với mỗi yêu cầu, chương trình của bạn sẽ tạo ra kết quả ở dạng số 0 nếu vé chưa được bán và 1 nếu vé đã được bán. Mỗi kết quả phải nằm trên một dòng riêng biệt

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Giải pháp.

Thuật toán:

Hãy tưởng tượng một mảng có độ dài N trong ô thứ i, trong đó chúng ta sẽ lưu số lượng hành khách đã mua vé và đang đi từ ga i đến (i+1).

Chúng tôi sẽ hỗ trợ RMQ (cây tối đa) cho một mảng như vậy với khả năng sửa đổi (thêm) nhanh chóng trên một phân đoạn.

Bây giờ, khi xử lý từng yêu cầu, trước tiên chúng tôi tìm ra mức tối đa trên đoạn và nếu nó nhỏ hơn K (tức là giữa mỗi cặp trạm trên tuyến có ít nhất một nơi miễn phí), chúng tôi bán vé và thực hiện cập nhật(x, y-1, +1). Nếu không, chúng tôi từ chối bán vé.

Chương trình:

mas: mảng longint;

n, m ,k, i, a, b, j, z:longint;

readln(n, k, m);

đối với i:= 0 đến n-1 thì làm

for i:=1 to m do

cho j:= a đến b-1 làm

nếu mas[j]=0 thì z:=5;

nếu z=5 thì writeln("0")

Vấn đề E Đá

Họ nằm trên bàn Nđá. Trong một lượt người chơi có thể lấy

    1 hoặc 2 viên đá nếu N chia hết cho 3;

    1 hoặc 3 nếu N khi chia cho 3 thì dư 1;

    1, 2 hoặc 3 nếu N Khi chia cho 3 thì dư 2.

Mỗi lần di chuyển có thể được thực hiện nếu có đủ đá. Người nào không thể di chuyển sẽ thua.

Định dạng tệp đầu vào

Nhập số nguyên 0 N

Định dạng tập tin đầu ra

In 1 hoặc 2 – số người chơi sẽ thắng nếu chơi đúng trò chơi.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Giải pháp.

Thuật toán:

Đặt (F[i] = 1) nếu người thứ nhất thắng và (F[i] = 2) nếu người thứ hai thắng. Sau đó lưu ý rằng F=1,F=1 F = 2. Bây giờ chúng ta sẽ chỉ điền vào mảng F. Chúng ta sẽ giả sử rằng 1 là vị trí thắng và 2 là vị trí thua. Khi đó nếu chúng ta từ vị trí hiện tại rơi vào vị trí thua thì đó là vị trí thắng, còn nếu chỉ vào vị trí thắng thì vị trí của chúng ta là vị trí thua. Tất cả những gì còn lại là chạy qua vòng lặp từ 4 đến n. Và viết ra các điều kiện cho các bội số khác nhau của 3. Trên thực tế, khi đó bạn có thể nhận thấy rằng các vị trí bội số của 3 đang thua và tất cả các vị trí khác đều thắng.

Chương trình:

nếu(n mod 3 = 0) thì

nếu(n mod 3 0) thì

kết thúc.

9 -11 Lớp học

Vấn đề A. Tỷ giá

Trước khi cuộc đua gián bắt đầu, tất cả người hâm mộ được yêu cầu đặt hai cược vào kết quả cuộc đua. Mỗi lần đặt cược trông giống như “Con gián số 1”. MỘT sẽ đến trước con gián số. B".

Những người tổ chức cuộc đua quyết định tìm hiểu xem liệu những con gián có thể đến theo thứ tự sao cho mỗi người hâm mộ sẽ thắng đúng một trong hai lần đặt cược hay không (nghĩa là sao cho đúng một trong hai tuyên bố của mỗi người hâm mộ là đúng). Người ta tin rằng không có hai con gián nào có thể về đích cùng một lúc.

Định dạng tệp đầu vào

Dòng đầu tiên chứa hai số tự nhiên cách nhau bằng dấu cách: số K, không quá 10 là số lượng gián và số lượng N, không quá 100, là số lượng người hâm mộ. Tất cả các con gián đều được đánh số từ 1 đến K. Mỗi điều sau đây N chuỗi chứa 4 số tự nhiên MỘT, B, C, D, không vượt quá K, cách nhau bởi dấu cách. Chúng tương ứng với mức cược của người hâm mộ “Con gián số 1”. MỘT sẽ đến trước con gián số. B" và "Con gián số. C sẽ đến trước con gián số. D".

Định dạng tập tin đầu ra

Nếu bạn có thể hoàn thành cuộc đua sao cho mỗi người hâm mộ thắng đúng một trong hai lần đặt cược thì bạn nên hiển thị số lượng gián theo thứ tự chúng xuất hiện trong bảng kết quả cuối cùng (đầu tiên là số lượng gián đến đầu tiên, sau đó là số con gián đứng thứ hai, v.v.) trên một dòng cách nhau bởi dấu cách. Nếu có một số tùy chọn như vậy, hãy in bất kỳ tùy chọn nào trong số đó.

Nếu không đạt được kết quả yêu cầu thì in ra một số 0.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Giải pháp.

Thuật toán:

Hãy xét tất cả các hoán vị của các số từ 1 đếnK- tất cả các kết quả có thể xảy ra của cuộc đua (thứ tự xuất hiện của gián). Với mỗi hoán vị(N) Hãy kiểm tra xem có đúng trong trường hợp này mỗi người hâm mộ sẽ thắng đúng một lần đặt cược hay không. Nếu điều này đúng, chúng ta in hoán vị hiện tại và thoát khỏi chương trình. Cuối chương trình in ra 0 (chương trình không kết thúc sớm hơn nên không tìm thấy đáp án).

Chương trình:

Tstavka = kỷ lục

a1, a2, b1, b2: dài;

i, n, k, e, s, p, w: int64;

a: mảng int64;

st: mảng Tstavka;

thay đổi thủ tục (x: longint);

với i1:= x + 1 đến x + ((k - x) div 2) do

một := một;

một := t;

cần, ch, t, i1: longint;

for i1:= k - 1 downto 1 do

nếu cần = 0 thì

for i1:= k downto 1 do

nếu vậy thì

một := một;

// gán(input,"input.txt"); đặt lại (đầu vào);

for i:= 1 to n do

read(st[i].a1, st[i].a2, st[i].b1);

readln(st[i].b2);

if (k=1) và (st[i].a1=1) và (st[i].a2=1) và (st[i].b1=1) và (st[i].b2=1) sau đó

for i:= 1 to k do a[i] := i; s:= 1;

for i:= 1 to k do s:= s * i;

với e:= 1 to s làm

với w:= 1 đến n làm

nếu ((a.a1] a.a2]) và (a.b1] a.b2])) thì

nếu đi = đúng thì

for i:= 1 to k do

nếu a[i] = p thì

for i:= 1 to k do

nếu a[i] = k thì

Vấn đề B. Đua xe

Giống như mọi cậu bé, Fedya có ô tô đồ chơi. Tuy nhiên, anh may mắn hơn một cậu bé bình thường - mọi thứ N xe của anh ấy được điều khiển bằng sóng vô tuyến. Cả ngày anh ấy có thể tổ chức nhiều cuộc đua xe khác nhau và chơi với bạn bè.

Trong tất cả các kiểu đua, Fedya thích đua theo đường thẳng. TRONG định dạng này Lộ trình thi đấu có dạng đường thẳng và kéo dài vô tận (cuộc thi kéo dài cho đến khi Feda cảm thấy mệt mỏi). Ban đầu mỗi Nô tô ở cách điểm xuất phát một khoảng - xuất phát sớm xi mét. Theo lệnh, tất cả các ô tô bắt đầu chuyển động ngay từ đầu, trong khi mỗi ô tô di chuyển trong suốt cuộc đua với tốc độ không đổi vi mét trên giây. Tất cả các ô tô đều chuyển động theo cùng một hướng - chúng chuyển động ra xa điểm xuất phát.

Feda gần đây đã được tặng một chiếc máy quay phim và anh ấy muốn ghi lại những khoảnh khắc nổi bật của cuộc đua. Trước hết, Fedya muốn ghi lại lần vượt đầu tiên của cuộc đua, tức là khoảnh khắc đầu tiên mà hai chiếc xe ở cùng khoảng cách tính từ lúc xuất phát.

Vì sự kiện này có thể được mong đợi trong một thời gian rất dài nên Fedya muốn đặt camera ở vị trí tự động bật trong khi vượt. Tuy nhiên, Fedya không thể tự mình tìm ra thời gian tính từ lúc bắt đầu cuộc đua cho đến thời điểm vượt đầu tiên. Trợ giúp Feda - viết chương trình tìm giá trị cần thiết.

định dạng đầu vào

Dòng đầu tiên của tệp đầu vào chứa một số N- số lượng ô tô trên đường (2 n 100). Mỗi điều sau đây N dòng chứa hai số nguyên xivi- khoảng cách từ điểm xuất phát (tính bằng mét) và tốc độ của ô tô Tôi(tính bằng mét trên giây) tương ứng (1 xivi 1000).

Ban đầu không có hai ô tô nào ở cùng một điểm. Đảm bảo rằng sẽ có ít nhất một lần vượt trong suốt cuộc đua.

Định dạng đầu ra

Trong tệp đầu ra, xuất số giây sẽ trôi qua từ thời điểm xuất phát đến thời điểm vượt đầu tiên, với độ chính xác ít nhất là 5 chữ số sau dấu thập phân.

Ví dụ

Dữ liệu đầu vào

đầu ra

Giải thích cho ví dụ đầu tiên:

Trong hình vẽ điểm A chỉ vị trí vượt.

Giải pháp.

Thuật toán:

1) Một ngày nào đó ô tô a sẽ đuổi kịp ô tô b nếu tốc độ của nó lớn hơn và tọa độ của nó nhỏ hơn

2) Chúng ta cùng đi qua từng ô tô và nếu một ô tô vượt qua ô tô khác (điểm 1) thì lần này chúng ta sẽ tính. Trong số tất cả các giá trị như vậy, chúng tôi chọn mức tối thiểu. Đây sẽ là câu trả lời

Chương trình:

var a,b:arrayof longint;

c:arrayofreal;

j,n,i,k,l:longint;

for i:=1 to n do

đọc(a[i],b[i]);

for i:=1 to n do

for j:=1 to n do

if(ij)và(a[i]b[j])rồi bắt đầu

c[k]:=(a[j]-a[i])/(b[i]-b[j]);

for i:=2 to k do

writeln(min:1:5);

Nhiệm vụ C. Kiểm tra

Một trong những cách để theo dõi kiến ​​thức của học sinh là tiến hành các bài kiểm tra. Trong quá trình kiểm tra, một số câu hỏi thường được hỏi, với mỗi câu hỏi bạn cần chọn một trong các phương án trả lời. Với mục đích này, người làm bài kiểm tra sẽ được cung cấp một biểu mẫu đặc biệt với các câu hỏi và lựa chọn trả lời.

Việc kiểm tra có thể được thực hiện đồng thời cho đủ số lượng lớn mọi người, vì vậy câu hỏi đặt ra về xử lý hiệu quả các mẫu đơn do người dự thi điền vào. Ở Flatland họ đang cố gắng giải quyết vấn đề này bằng cách sử dụng công nghệ thông tinxử lý tự động kết quả kiểm tra.

Bước đầu tiên là viết một chương trình tính điểm kiểm tra dựa trên thông tin đã biết về câu trả lời đúng cho các câu hỏi và câu trả lời do người làm bài đưa ra. Nhiệm vụ của bạn là viết một chương trình như vậy.

Định dạng tệp đầu vào

Dòng đầu tiên của file đầu vào chứa số N (1 ≤ N 100000) câu hỏi trong bài kiểm tra. Dòng thứ hai của file đầu vào chứa n số nguyên Một 1 , Một 2 , . . . , Một N- số lựa chọn đúng câu trả lời cho từng câu hỏi. Dòng thứ ba của tập tin đầu vào chứa N số nguyên b 1 , b 2 , . . . , b N- số phương án do người dự thi lựa chọn. Đối với số Một Tôib Tôi các bất đẳng thức 1 ≤ là đúng Một Tôi , b Tôi ≤ 10.

Định dạng tập tin đầu ra

Trong tệp đầu ra, in số lượng câu hỏi mà người làm bài kiểm tra đã trả lời đúng.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra


Giải pháp.

Thuật toán:

Một nhiệm vụ rất dễ dàng. Chúng tôi đọc dữ liệu thành hai mảng. Sau đó chúng ta chạy vòng lặp lên tới n và kiểm tra: nếu phần tử thứ i Mảng thứ 1 bằng phần tử thứ i của mảng thứ 2, sau đó ta tăng bộ đếm lên 1.

Chương trình:

a,b:mảng byte;

gán(input, "input.txt");

gán(output, "output.txt");

viết lại (đầu ra);

for i:=1 to n do

for i:=1 to n bắt đầu

nếu a[i]=b[i] thì

kết thúc.

Nhiệm vụD. Cuộc thi đua xe Karting

Sau chặng tiếp theo của giải vô địch thế giới Công thức A ở môn đua xe bánh hở, các tay đua tập trung lại tại một quán cà phê để thảo luận về kết quả. Họ nhớ rằng khi còn trẻ, họ thi đấu không phải bằng ô tô lớn mà là đua xe kart - xe thể thao kích thước nhỏ hơn.

Bạn bè quyết định tìm ra người chiến thắng trong một trong những cuộc đua xe kart. Người chiến thắng cuộc đua là tay đua có tổng thời gian hoàn thành tất cả các vòng đua là tối thiểu.

Vì kết quả cuối cùng không được bảo toàn nên mỗi N ghi nhớ những người tham gia cuộc đua đó và viết ra kết quả hoàn thành của từng người trong số họ tôi vòng của đường đua. Thật không may, sử dụng thông tin này, các tay đua khó có thể tính toán được người chiến thắng trong cuộc đua đó. Vì điều này, họ đã yêu cầu bạn làm điều đó.

Yêu cầu viết một chương trình tính toán người chiến thắng trong cuộc đua xe kart mà các tay đua đang nói đến.

Định dạng tệp đầu vào

Dòng đầu tiên của tệp đầu vào chứa hai số nguyên Ntôi (1Ntôi 100). Tiếp theo 2 N các dòng mô tả hành trình của mỗi người tham gia. Mô tả của người tham gia về đoạn đường của tuyến đường bao gồm hai dòng. Dòng đầu tiên chỉ chứa tên người tham gia bằng cách sử dụng chữ cái Latinh(chữ thường và chữ hoa). Tên của mỗi thành viên đều khác nhau, với các chữ cái viết thường và viết hoa khác nhau trong tên của họ.

Dòng thứ hai chứa tôi số nguyên dương, trong đó mỗi số là thời gian một người tham gia nhất định hoàn thành mỗi số tôi vòng đua (mỗi số này không vượt quá 1000). Độ dài tên của mỗi người tham gia không vượt quá 255.

Định dạng tập tin đầu ra

Tệp đầu ra phải hiển thị tên người chiến thắng cuộc đua trên thẻ. Nếu có nhiều người chiến thắng, bạn cần hiển thị tên của bất kỳ người nào trong số họ.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

Sumaher
2 1 1

Barikelo
2 1 2

Chú ý tới khoảng trống ở cuối dòng cuối cùng dữ liệu đầu vào.

Giải pháp.

Thuật toán:

Hãy tạo một dòng riêng để lưu họ của người chơi với kết quả tốt nhất và một biến riêng để lưu trữ kết quả này. Sau đó, chúng tôi chỉ định cho họ kết quả và tên của tay đua số 1, sau đó chúng tôi đọc kết quả còn lại và so sánh chúng với mức tối đa trên bước này và, nếu cần, hãy thay đổi cái sau.

Chương trình:

var n,m,i,j,x,sum,min:longint;

phút:=maxlongint;

for i:=1 to n do

cho j:=1 để m làm

kết thúc;

Nhiệm vụ E. Văn bằng

Khi Petya còn đi học, anh thường tham gia các kỳ thi Olympic về khoa học máy tính, toán học và vật lý. Vì là một cậu bé khá có năng lực và học tập chăm chỉ nên cậu đã nhận được bằng tốt nghiệp tại nhiều kỳ thi Olympic này. Đến cuối năm học anh đã tích lũy được N bằng cấp, và hóa ra, tất cả họ đều có cùng kích thước: w- về chiều rộng và h- về chiều cao.

Hiện Petya đang theo học tại một trong những trường đại học tốt nhất của Nga và sống trong ký túc xá cùng các bạn cùng lớp. Anh quyết định trang trí phòng của mình bằng cách treo bằng tốt nghiệp Olympic của trường lên một trong những bức tường. Vì việc gắn các bằng cấp vào tường bê tông khá khó khăn nên anh quyết định mua một tấm gỗ balsa đặc biệt để gắn vào tường và gắn các bằng cấp lên đó. Để thiết kế này trông đẹp hơn, Petya muốn tấm bảng có hình vuông và chiếm ít diện tích trên tường nhất có thể. Mỗi bằng tốt nghiệp phải được đặt nghiêm chỉnh trong một hình chữ nhật có kích thước w TRÊN h. Bằng tốt nghiệp không được phép xoay 90 độ. Các hình chữ nhật tương ứng với các độ khác nhau không được có điểm chung bên trong.

Yêu cầu viết chương trình tính toán kích cỡ nhỏ nhất cạnh tấm bảng mà Petya sẽ cần để đặt tất cả các bằng cấp của mình.

Định dạng tệp đầu vào

Tệp đầu vào chứa ba số nguyên: w, h, N (1whN 109).

Định dạng tập tin đầu ra

Câu trả lời cho nhiệm vụ phải được xuất ra tệp đầu ra.

Ví dụ về tập tin đầu vào và đầu ra

Dữ liệu đầu vào

đầu ra

minh họa chẳng hạn:

Giải pháp.

Thuật toán:

Do những hạn chế lớn về n,w,h tuyến tính việc tìm kiếm độ dài có thể có của một cạnh hình vuông không mất thời gian, vì vậy nhiệm vụ này nên được giải quyết bằng cách sử dụng tìm kiếm nhị phân để tìm câu trả lời. Rõ ràng, kích thước bảng nằm trong khoảng từ min(w,h) đến n * max(w,h). Trong O(1), thật dễ dàng để kiểm tra xem tất cả các chứng chỉ có khớp với một hình vuông có cạnh a (n) hay không.

Chương trình:

hàm maxwh (w2, h2:int64):int64;

nếu w2h2 thì maxwh:=w2 nếu không maxwh:=h2;

hàm maxd(w1,h1,mid1: int64): int64;

maxd:=(mid1 div w1)*(mid1 div h1);

xin chào, lo, giữa: int64;

readln(w,h,n);

xin chào:=maxwh(w, h)*n;

giữa:=(hi+lo) div 2;

nếu maxd(w, h, mid)

Xem nội dung tài liệu
“Điều kiện tổ chức Olympic Tin học”

Yêu cầu tiến hành và đánh giá giai đoạn Olympic cấp thành phố

về khoa học máy tính năm học 2017 – 2018. của năm.

Những yêu cầu này được phát triển bởi ủy ban phương pháp luận chủ đề khu vực về khoa học máy tính và là một phần của khung pháp lý cho Olympic toàn Nga dành cho học sinh.

Phù hợp với Quy trình tổ chức Olympic toàn Nga dành cho học sinh (sau đây gọi là quy trình), được phê duyệt theo lệnh của Bộ Giáo dục và Khoa học Nga ngày 18 tháng 11 năm 2013 số 1252 (do Bộ Tư pháp đăng ký). của Nga ngày 21 tháng 1 năm 2014, số đăng ký 31060) được sửa đổi theo lệnh của Bộ Giáo dục và Khoa học Nga ngày 17 tháng 3 năm 2015 số 249 (được Bộ Tư pháp Nga đăng ký ngày 7 tháng 4 năm 2015, đăng ký số 36743) và theo lệnh của Bộ Giáo dục và Khoa học Nga ngày 17 tháng 12 năm 2015 số 1488 (được Bộ Tư pháp Nga đăng ký ngày 20 tháng 1 năm 2016, số đăng ký 40659) bộ tài liệu sau đây dành cho tổ chức Kỳ thi Olympic toàn Nga dành cho học sinh về khoa học máy tính ở cấp thành phố năm học 2017-2018:

    văn bản về các vấn đề Olympic;

    yêu cầu tiến hànhvà đánh giá giai đoạn Olympic cấp thành phố;

    hệ thống chuyên dụng để tổ chức Olympic, có trên trang webhttp://informatics.mccme.ru ;

    hướng dẫn làm việc trong hệ thống chuyên dụng tổ chức Thế vận hội;

Olympic được tổ chức cho học sinh lớp 7, 8, 9, 10, 11. Hai bộ bài tập khoa học máy tính được trình bày: dành cho lớp 7-8 và lớp 9-11.

Những người chiến thắng và người đoạt giải ở giai đoạn Thế vận hội cấp thành phố đã được xác định bằng sự tương đồng.

Giai đoạn Olympic cấp thành phố sẽ được tổ chức bằng hệ thống chuyên dụng để tiến hành Olympic có trên trang web http://informatics.mccme.ru trong phần OLYMPIADS CÁ NHÂN/CỘNG HÒA KOMI. OLYMPICS. Thời gian diễn ra Olympic trên trang này là ngày 22 tháng 11 năm 2017 từ 12:00 đến 18:00 (quyền truy cập sẽ đóng vào lúc 18:15).

Trong trường hợp sử dụng bản giấy của Olympic, thời gian được xác định cơ quan thành phố quản lý giáo dục.

Các ngôn ngữ và môi trường lập trình sau đây được sử dụng cho giai đoạn Olympic cấp thành phố:

cơ bản: FreePascal, C, C ++, GNU C/C++4/6/1, Delphi 7.0; thêm vào : Borland C++3.1, Ngôn ngữ lập trình, Mono 2.0, Python 3.3.

Cần lưu ý rằng đối với tất cả các phần mềm được sử dụng trong giai đoạn thành phố, người tổ chức giai đoạn này phải có các giấy phép cần thiết. Được đề xuất nhiều nhất hệ thống phần mềmđược phân phối miễn phí và có thể tải xuống từ các trang web tương ứng của họ. Ví dụ về các trang web như vậy là:

FreePascal – trang webhttp://freepascal.org;

MinGW – trang web http://mingw.org;

Nhật thực – trang webhttp://eclipse.org;

Code::Blocks – trang webhttp://www.codeblocks.org;

Quản lý xa – trang web http://farmanager.com/index.php?l=en

Thời lượng của chuyến tham quan có thể từ ba đến bốn giờ thiên văn đối với lớp 7-8 và từ bốn đến năm giờ thiên văn đối với lớp 9-11.

Trong chuyến tham quan, những người tham gia Olympic bị cấm sử dụng Internet, bất kỳ các thiết bị điện tử, bao gồm những máy tính cá nhân, máy tính, điện tử sổ ghi chép, phương tiện liên lạc (máy nhắn tin, điện thoại di động v.v.), phương tiện lưu trữ điện tử (đĩa mềm, CD và DVD, mô-đun bộ nhớ flash, v.v.), cũng như tài liệu giáo dục và tài liệu được chuẩn bị sẵn. ghi chú cá nhân.

Chỉ có thể truy cập Internet nếu hệ thống Internet được sử dụng trong chuyến tham quan kiểm tra tự động quyết định của những người tham gia, nhưng sau đó quyền truy cập vào các trang web khác ngoài trang Olympic phải bị chặn.

Nếu trong quá trình tham quan, máy tính hoặc thiết bị sử dụng không phải do lỗi của người tham gia. phần mềm theo quyết định của bồi thẩm đoàn, thời gian dành cho việc khôi phục chức năng của máy tính có thể được đền bù.

Mô tả hệ thống đánh giá giải pháp vấn đề

Việc đánh giá các giải pháp cho các vấn đề sẽ diễn ra tự động trên hệ thống chuyên dụng để tiến hành Olympic.

Bảng chấm điểm nhiệm vụ:

nhiệm vụ

lớp 7 - lớp 8

lớp 9 - 11

số điểm tối đa

số điểm tối đa

Tổng cộng:

Khi kiểm tra thủ côngĐể giải quyết vấn đề, các bài kiểm tra từ các ví dụ được đưa ra trong báo cáo vấn đề được sử dụng. Nếu trong các bài kiểm tra này, lời giải của người tham gia đưa ra câu trả lời đúng thì người tham gia sẽ nhận được 10 điểm cho 1 bài kiểm tra và 20 điểm cho 2 bài kiểm tra.

Chúng ta hãy xem xét việc giải quyết các vấn đề ở giai đoạn học đường của Olympic toàn Nga dành cho học sinh về khoa học máy tính trong lập trình. Các bạn có thể tải bài tập về theo liên kết sau:

Hãy xem xét các nhiệm vụ sau:

Nhiệm vụ số 1. Bàn cờ vua.

Bàn cờ gồm các ô vuông n×m, tô màu đen và màu trắng theo thứ tự bàn cờ. Trong trường hợp này, hình vuông ở góc dưới bên trái của bảng được sơn màu đen
màu sắc. Xác định có bao nhiêu ô màu đen trên bảng. Chương trình nhận hai số n và m làm đầu vào, viết trên hai dòng riêng biệt. Tất cả các số đều là số tự nhiên, không vượt quá 30.000. Chương trình phải in ra một số nguyên - số ô đen trên bảng.

Giải pháp.

Hãy xem xét các trường hợp đặc biệt:

Chúng tôi thấy một mô hình:

  1. nếu số trường là chẵn (4x4=16), thì mỗi hàng có cùng số ô đen và trắng, tức là. để tìm số ô màu đen bạn cần chia tổng số ô cho 2. Hãy kiểm tra: 16:2=8. Hãy làm toán. Đúng là 8!! Bạn có thể thử nghiệm với các bảng có kích thước khác, nhưng để Tổng số các ô đều nhau.
  2. nếu số trường là số lẻ (5x5=25) thì tình huống sẽ khác. Số ô đen được tính theo công thức: (n+1)/2, trong đó n là tổng số ô vuông trên bàn cờ (25+1)/2=13 - đúng!!!)

Nếu có thể công thức nàyđối với bảng 3x3 hoặc 5x3 - câu trả lời sẽ đúng.

Chương trình Pascal sẽ trông như thế này:

var n, m, result: longint; bắt đầu đọcln(n); đọcln(m); nếu n*m mod 2 =0 thì kết quả:=n*m div 2 else kết quả:= (n*m+1) div 2; writeln(kết quả); kết thúc.

(Nhà điều hànhdivđược sử dụng vì thực tế là mẫu này, trong phát biểu vấn đề, tất cả các biến đều có kiểu số nguyên. Nếu nhưdivthay thế bằng phép chia thông thường, sau đó biếnkết quảcần phải được khai báo làthực tế).

Nhiệm vụ số 2. Thành phố Manhattan.

Các khu dân cư của Manhattan được tạo thành từ các đại lộ chạy từ nam tới bắc và các đường phố chạy từ tây sang đông. Tất cả các đường phố và đại lộ đều được đánh số bắt đầu từ 1
liên tiếp (đường thứ nhất, đường thứ hai, đường thứ ba, v.v.). Bạn chỉ có thể di chuyển trên đường phố hoặc dọc theo đại lộ.

Misha đến Manhattan lần đầu tiên. Bây giờ nó đứng ở giao lộ của đại lộ số x1 và số đường y1. Anh ta cần đến giao lộ của đại lộ số x2 và số đường y2.
Xác định con đường anh ta nên đi. Chương trình nhận vào 4 số: x1, y1, x2, y2, viết thành các dòng riêng biệt. Tất cả các số đều là số tự nhiên và không vượt quá 103. Vị trí đầu và cuối của Misha không trùng nhau.
Chương trình sẽ xuất ra chuỗi từ tiếng Latin chữ in hoa, mô tả con đường mà Misha phải đi theo. Chữ "N" biểu thị việc di chuyển một khối về phía bắc, "S" - phía nam, "W" - phía tây, "E" - phía đông. Chương trình sẽ in đường đi ngắn nhất trong số tất cả các tuyến đường có thể, nhưng nếu có một số tuyến đường ngắn nhất thì chương trình sẽ in bất kỳ tuyến đường nào trong số đó (nhưng chỉ một).
Chương trình có thể hiển thị chuỗi các bước di chuyển không phải trên một dòng (như trong ví dụ), mà mỗi ký hiệu phản hồi trên một dòng riêng biệt (ví dụ: nếu mỗi ký hiệu
câu trả lời được in bằng lệnh đầu ra riêng trong vòng lặp).

Giải pháp.

Chúng ta hãy tưởng tượng hệ thống đường phố và đại lộ là một hệ tọa độ, trong đó giao lộ là các điểm có tọa độ tương ứng (giao điểm của đại lộ thứ hai và đường thứ nhất là một điểm có tọa độ (2;1); giao điểm của đại lộ thứ tư và đường thứ ba là một điểm có tọa độ (4;3), v.v.)

Để đi từ giao lộ Đại lộ số 2 và Đường số 4 (điểm A) đến giao lộ Đại lộ số 6 và Đường số 1 (điểm B), bạn cần đi thẳng đến x2 - x1 = dx (6-2 = 4) và xuống y2 - y1 = dy (4 - 1 = 3). Nếu điểm B ở vị trí của điểm A và điểm A ở vị trí của điểm B thì chúng ta sẽ phải di chuyển sang trái dx và lên trên dy. Những thứ kia. từ vị trí tương đối Hướng chuyển động phụ thuộc vào các điểm này (A và B).

Hãy viết một chương trình bằng Pascal:

var x1,y1,x2,y2,dx,dy,i:số nguyên; bắt đầu readln(x1,y1,x2,y2); dx:=abs(x1-x2); // x khoảng cách dy:=abs(y1-y2); // khoảng cách dọc theo trục y if x2>x1 thì // nếu điểm B ở bên phải điểm A, thì... đối với i:=1 to dx do write("E") khác đối với i:=1 to dx do write("W"); nếu y1>y2 thì // nếu điểm A cao hơn điểm B, thì... for i:=1 to dy do write("S") else for i:=1 to dy do write("N"); kết thúc.

Các nhiệm vụ còn lại có phần khó khăn hơn. Sẽ có đánh giá sớm. Hãy theo dõi để cập nhật, đăng ký!

Hãy xem xét một bảng chứaN dòng vàtôi cột, mỗi ô chứa số 0 hoặc số 1. Chúng ta gọi một bảng như vậy là đẹp nếu nó không chứa một hình vuông 2 x 2 được lấp đầy hoàn toàn bằng số 0 hoặc hoàn toàn bằng số 1.

Vì vậy, ví dụ, bàn 4 x 4 ở bên trái là dễ thương, nhưng bàn 3 x 3 ở bên phải thì không.

Nhiều bảng được xác định. Mỗi người trong số họ cần phải tìm hiểu xem cô ấy có dễ thương hay không.

Dữ liệu đầu vào

Dòng đầu tiên của tệp đầu vào INPUT.TXT chứa số lượng bộ dữ liệu đầu vào t (1 ≤ t ≤ 10). Sau đây là mô tả về các bộ này. Mô tả của mỗi bộ bao gồm một dòng chứa các số n và m (1 ≤ n, m ≤ 100) và n dòng, mỗi dòng chứa m số cách nhau bởi dấu cách. Số thứ j trong dòng thứ i+1 của mô tả tập dữ liệu đầu vào là phần tử a ij bảng tương ứng. Nó được đảm bảo rằng tất cả một ij đều bằng 0 hoặc bằng một.

đầu ra

Đối với mỗi bộ đầu vào, xuất ra tệp OUTPUT.TXT một dòng chứa từ "CÓ" nếu bảng tương ứng đẹp và từ "KHÔNG" nếu không.

Ví dụ

INPUT.TXT

ĐẦU RA.TXT

3
1 1
0
4 4
1 0 1 0
1 1 1 0
0 1 0 1
0 0 0 0
3 3
0 0 1
0 0 1
1 1 1
ĐÚNG
ĐÚNG
KHÔNG

Nhiệm vụ được thiết kế để viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào.

Việc nhập dữ liệu có thể được thực hiện từ tập tin đầu vào hoặc từ bàn phím.

Cho hai số N và K. Cần tìm số dư khi chia N cho K.

Dữ liệu đầu vào

Tệp đầu vào INPUT.TXT chứa hai số nguyên: N và K (1<= N <= 10 100 , 1 <= K <= 10 9 ).

đầu ra

Xuất phần dư của N chia cho K thành file đầu ra OUTPUT.TXT.

Ví dụ

INPUT.TXT

ĐẦU RA.TXT

239 16 15
4638746747645731289347483927 6784789 1001783

Nhiệm vụ được thiết kế để viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào.

Việc nhập dữ liệu có thể được thực hiện từ tập tin đầu vào hoặc từ bàn phím.

Vanya quan sát con ếch. Ban đầu nó nằm ở điểm 0 của trục số. Mỗi giâycô ấy nhảy 1 bên phải cho đến khi đạt đến một điểm K .Sau đó cô ấy bắt đầu nhảy 1 giây mỗi giâysang trái cho đến khi trở về điểm 0, rồi lại sang phải, v.v. Bạn cần xác định xem con ếch sẽ đi qua đâu T giây.

định dạng đầu vào

Trong tập tin đầu vàođầu vào.txt hai dòng chứa hai số K T , cách nhau bởi một dấu cách. Cả hai

các số là tự nhiên và không vượt quá 1.000.000.000.

Định dạng đầu ra

Xuất ra tập tin đầu rađầu ra.txt một số - tọa độ của con ếch tại thời điểm T.

Ví dụ

8 2

Ghi chú

Chương trình không được hiển thị bất kỳ thông báo bổ sung nào và cũng không được chứacác câu lệnh trì hoãn việc thực hiện chương trình (ví dụ: readln ở cuối chương trình)

Phím

các nhiệm vụ của giai đoạn đầu tiên (trường học) của Kỳ thi Olympic các môn học toàn Nga dành cho học sinh

về khoa học máy tính và CNTT năm học 2016/2017

    Lớp học ( tối đa – 45 điểm )

Nhiệm vụ 1. “Bài kiểm tra về sự nhỏ bé” – 20 điểm

Loại vấn đề: Nhiệm vụ lập trình. Mảng hai chiều

Nhiệm vụ được thiết kế để viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào.

Việc nhập dữ liệu có thể được thực hiện từ tập tin đầu vào hoặc từ bàn phím.

Trong nhiệm vụ này, cần phải đọc tuần tự tất cả các ma trận đã trình bày thành mảng hai chiều và kiểm tra độ hấp dẫn của chúng rồi xuất kết quả kiểm tra ra tệp đầu ra. Để kiểm tra xem ma trận hiện tại có hấp dẫn hay không, bạn có thể xem qua tất cả các mảng con 2x2 có thể có trong một vòng lặp kép và kiểm tra xem có ít nhất một mảng trong số chúng bao gồm các phần tử giống hệt nhau hay không. Nếu có, thì “KHÔNG” và “CÓ” sẽ được xuất ra tệp, nếu không. Cơ chế kiểm tra độ dễ thương của một ma trận có thể được mô tả như sau:

Được=đúng;

với i=1..n-1(

với j=1..m-1(

if((a[i][j]+a[i]+a[j]+a) mod 4 == 0) Ok=false;

if(Ok) write("YES") else write("NO");

Cần lưu ý rằng việc sử dụng mảng hai chiều là không cần thiết. Ở đây không cần thiết phải nhớ tất cả các phần tử của ma trận; chỉ cần nhớ dòng trước và dòng hiện tại cũng như kiểm tra các mảng con 2x2 trong khi đọc dữ liệu. Thuật toán này phức tạp hơn một chút để thực hiện, nhưng tiết kiệm hơn về bộ nhớ được sử dụng, điều này đôi khi không kém phần quan trọng.

Bài 2. “Chia lấy số dư” – 10 điểm

Loại vấn đề: Nhiệm vụ lập trình. số học số nguyên

Nhiệm vụ được thiết kế để viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào.

Việc nhập dữ liệu có thể được thực hiện từ tập tin đầu vào hoặc từ bàn phím.

Giải pháp cho vấn đề này cũng tương tự như giải pháp cho vấn đề " A div B ". Ở đây cần lưu ý rằng số bị chia là một con số khá lớn và trong quá trình tính toán, giá trị hiện tại có thể vượt quá mức tối đa có thể đối với số nguyên 4 byte, vì vậy bạn cần sử dụng các loại khác (ví dụ: int64 hoặc __int64 trong Pascal).

Thuật toán thực hiện nhiệm vụ này có thể được viết dưới dạng sau:

const maxsize=101;

int a, b;

int64x;

đọc dài(a);

đọc(b);

x=0; k=0;

với i=a..1(

x = x*10+a[i];

nếu(x< b and k=0 and i >1) tiếp tục;

k=1;

x = x mod b;

viết(x);

Bài 3. “Ếch” – 15 điểm

Loại vấn đề: Nhiệm vụ lập trình. Điều hành có điều kiện

Nhiệm vụ được thiết kế để viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào.

Việc nhập dữ liệu có thể được thực hiện từ tập tin đầu vào hoặc từ bàn phím.

chương trình A;

var

k, t: số nguyên;

bắt đầu

gán(input, 'input.txt'); đặt lại (đầu vào);

gán(output, 'output.txt'); viết lại (đầu ra);

ĐọcLn(k,t);

nếu (t div k mod 2 = 0) thì

WriteLn(t mod k)

khác

WriteLn(k - t mod k);

đóng (đầu vào); đóng (đầu ra);

kết thúc.

Liên hệ với