TLEoj Contest #09 - Trò con bò

Xem PDF

Nộp bài

Điểm: 1200 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 1G
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C++, NASM, Pascal, Perl, pypy3, Python

"Ngành Tin Học bắt đầu du nhập về Việt Nam từ năm 1989. Năm đấy, bọn Hội đồng Khoa học Quốc Tế tổ chức IOI lần đầu tiên ở bên Bulgary. Thời đấy, bên mình còn chưa biết cái môn này là cái gì, học và dạy như thế nào, gồm những cái gì nên quyết định tham gia để thấy thế giới người ta học như thế nào thì bú nguyên cái đấy về Việt Nam dạy. Như các bạn bây giờ thì để được đi thi cái đấy đấm nhau hết hơi còn chưa xong, đấu qua mấy vòng rồi đủ các thể loại mới đi thi được, vì bây giờ thằng nào cũng muốn đi, nhưng năm ấy, cố gắng vật vã lắm mới cử được có 3 thằng đi - còn chưa đủ 4 đứa để thành 1 đội. Năm đấy mình đi thi trên tinh thần lớ ngớ chả biết cái gì cả, chỉ đi thi thử cho biết, thế mà chẳng hiểu kiểu gì lại được cái huy chương đồng để mang về. Thậm chí, cả mấy năm sau cũng thế - các năm sau còn nhiều huy chương hơn, thậm chí có cả huy chương vàng. Thực ra hồi đấy kết quả được như thế vì lúc đấy đi thi về cơ bản là "chửi nhau" và "code giấy": lãnh đạo đoàn bên mình đi tranh luận với BTC các thứ để chấm điểm. Đến năm 1994 thì IOI bắt đầu chấm bằng test, và thế là từ đấy kết quả của đoàn VN bắt đầu lẹt đẹt đi hẳn.
Quá trình chấm bài bằng test thì cũng phải mất mấy năm mới hoàn thiện được. Mấy năm đầu, mỗi test chỉ đứng riêng, nên có hiện tượng mấy thằng cắn bẩn, chả code gì còn được điểm cao hơn cả mấy thằng nghĩ ra thuật tử tế. Các bạn cứ thử tưởng tượng thế này: Có 1 bài gồm 10 test, mỗi test được 10 điểm, nhưng chỉ yêu cầu in ra 1 trong 4 số A,B,C,D làm đáp án. Thế là, có mấy thằng, chả cần nghĩ thuật gì, cứ in ra random(1,4) và thế là chẳng làm gì cũng được hơn 20 điểm. Tính toán ra thì tỉ lệ để đúng hết các test bài đấy mà chỉ in random ra tận 1/hơn 1 triệu gì gì đấy, nghĩa là bọn đấy nếu cứ cắm đầu cắm cổ nộp bừa thì trong contest, kiểu gì cũng có thằng AC mà không cần phải làm gì cả, mà thế thì rõ ràng là không tốt. Thế là, rút kinh nghiệm từ cái đấy, mấy năm tiếp theo người ta gộp tầm 10 test lại thành các "batch", và phải đúng hết các test trong 1 batch thì mới được điểm của batch đấy. Các bạn cứ tưởng tượng là, có 50 cái test, nếu để nó thành 50 test riêng, mấy thằng in random kia trung bình kiểu gì cũng đúng được đâu đấy tầm 15 test. Nhưng nếu gộp 10 cái test vào trong 1 batch, và yêu cầu phải đúng hết tất cả các test trong batch mới được điểm của batch đấy, thì mấy thằng cắn bẩn đấy chẳng có cơ hội làm gì cả."
(thực ra còn nhiều hơn nữa, nhưng do mình không ghi lại và chưa nhớ được hết nên chỉ có đến đây thôi)

  • Lê Minh Hoàng, trong bài "diễn văn" chào mừng học sinh khóa K56 Tin của trường Chuyên ĐHSP Hà Nội (Thứ 2, ngày 8/8/2022)

Sau hơn 30 năm du nhập về Việt Nam, môn Tin Học đã trở thành một môn học chính thống với mức độ cạnh tranh khá cao (cho bọn trường chuyên), với số lượng học sinh được giải trong các kì thi khu vực và quốc tế càng ngày càng tăng lên. Nhận thấy rằng chất lượng của học sinh trong nước (trong môn Tin Học lập trình) càng ngày càng cao, Bộ Giáo Dục, cùng với các trường chuyên trên khắp cả nước đã và đang có rất nhiều nỗ lực để đẩy mạnh công cuộc đào tạo các IOI medalist có thể cạnh tranh với các anh Tàu, Tàu (ở Mỹ), Tàu (Ở Canada), Tàu (ở Úc), Nhật, Hàn,.... trong tương lai. Với chủ trương "các em khóa sau phải giỏi x10 lần các anh chị tiền bối khóa trước lúc bằng tuổi", Sở Giáo Dục của các thành phố, cùng với hội đồng các trường chuyên trên khắp cả nước đã nghĩ ra những cách vô cùng hay ho để thách thức các em học sinh cấp 2 trên khắp cả nước. Điển hình như việc đề Tuyển Sinh vào 10 của Lê Quý Đôn (Đà Nẵng) tòi hẳn ra 1 bài FFT giải 10^5 đa thức có bậc 10^5 (literally kiến thức nâng cao trên Codeforces, 4* trên VNOI Wiki), hay đề thi HSGTP dành cho học sinh cấp 2 của Hà Nội có quả bài 5 bú nguyên xi 1 bài rating 3000 Codeforces (https://codeforces.com/problemset/problem/526/F) (3k codeforces = ngang ngửa đề thi IOI :wheeze: và từ đó sinh ra câu nói huyền thoại của ahihi1234: "Bài 3k codeforces đấy chỉ là sub 3 thôi con ạ") :wheeze: , hay việc câu C hình đề tuyển sinh vào 10 của 1 trường H nào đó (trong 1 đề thi 150p) khiến 1 nhóm 5 thầy nào đó mất 300 phút (với sự hỗ trợ của GeoGeBruh) để giải và khiến ngay cả đội IMO cũng phải bó tay, hay....... Việc đưa ra những task rất wtf và literally không ai giải nổi để thằng ra đề flex trình độ với bọn nhóc cấp 2 vắt mũi chưa sạch, mới chân ướt chân ráo vào CP xem ra khá được ưa chuộng

Ngoài việc liên tục pressing các em trong quá trình tuyển sinh, ngay cả sau khi đã vào trường rồi, các em vẫn còn lâu mới được yên. Bây giờ meta là học sinh lớp 8 phải hở mồm ra là Larange Interpolatation, FFT, cài mincost flow, matching, Presistent Segment Tree như con, biết extended Li-chao tree with Lazy Propagation, Gormon-Hu tree, Larange Relaxation, Link-Cut Tree, Segment Tree Beats, 3D Convex Hull, Splay Tree,....., AC Alien trong 1 nốt nhạc ầm ầm, còn nếu không được thì sẽ ngay lập tức trở thành nỗi thất vọng trong lòng thầy H nào đó (allegedly) và nếu học sinh học ké dự tuyển mà không được đi thi IOI từ lớp 10 thì cũng sẽ trở thành nỗi nhục của thầy H nào đó và bị chê là "không có gì nổi trội" (allegedly). Nghe đồn còn có trường nào đấy suốt ngày lôi paper của bọn tuyển bên China về dịch để dạy cho HS lớp 10, dù cuối cùng cũng chả biết khi nào mới dùng.

Năm nay, với tư cách là người ra đề cho kì thi Học sinh giỏi Quốc gia môn Tin Học cấp Tiểu học, bạn có nhiệm vụ phải ra 1 đề thi nhuận tràng nhất có thể cho tất cả các bên liên quan. Hiện tại, ban tổ chức đã chuẩn bị được N bài (với nguồn được bú trực tiếp, thay mỗi cái tên và taskname từ COCI, POI, IOI, APIO, IZhO, USACO Platinium , Codeforces (phải có độ khó trên 3k trở lên), CodeChef, VNOI, AtCoder, các thứ các kiểu), với độ khó lần lượt là A[1], A[2], ......, A[N]. Nhiệm vụ của bạn chỉ là sắp xếp lại các bài này để tạo thành một đề thi hoàn chỉnh.

Sau khi nhận được sự hưởng ứng "nồng nhiệt" từ các phụ huynh trên khắp cả nước, ban tổ chức đã quyết định tặng cho mỗi thí sinh 1 cỗ máy huyền bí để có thể hỗ trợ giải đề. Nguyên lí hoạt động của máy như sau:

  • Khi nhận đề thi, máy sẽ ngay lập tức giải bài đầu tiên trong đề thi. Giá trị máy nhận làm input là độ khó của bài đó.
  • Với mọi bài thứ i thỏa mãn 1<i\le N, độ khó mà máy sẽ gặp phải khi giải bài thứ i sẽ có giá trị là (giá trị đang ở trong máy) % (độ khó của bài thứ i). Input giá trị này vào trong máy để giải bài thứ i+1.
  • Độ khó của đề thi là giá trị ở trong máy sau khi đã giải hết tất cả N bài.

Như đã nói ở trên, vì muốn đào tạo ra, không phải 1, không phải 2, mà là 10^9 + 7 Tourist da vàng 9 tuổi, ban tổ chức muốn bạn đưa ra được 1 đề thi giúp mọi thí sinh được nhuận tràng và rửa ruột nhất có thể, BTC momg muốn đề thi có độ khó càng cao càng tốt. Do thời gian để chuẩn bị đề vô cùng có hạn, bạn chỉ cần xác định độ khó tối đa có thể của 1 đề thi.

Yêu cầu: Hãy xác định độ khó tối đa của 1 đề thi gồm N bài đã cho trước.

Input, Output và Scoring

Input (bàn phím)
  • Dòng đầu tiên gồm 1 số N - số bài tập đã có sẵn.
  • Dòng thứ 2 gồm N số nguyên, số nguyên thứ i là độ khó của bài tập thứ i trong đề thi mà bạn đưa ra.
Output (màn hình)

In ra 1 dòng:

  • Dòng đầu tiên gồm 1 số nguyên: độ khó tối đa của đề thi.
Subtasks
  • Với mọi i từ 1 tới N: A[i] \le 10^9
  • Subtask 1 (8% số điểm): N \le 5
  • Subtask 2 (14% số điểm): N \le 16, với mọi i: A[i] \le 60
  • Subtask 3 (18% số điểm): N \le 1000
  • Subtask 4 (33% số điểm): N \le 100000
  • Subtask 5 (27% số điểm): N \le 1000000

Sample

Input (bàn phím)
5
8 5 3 7 3
Output (màn hình)
2

Bình luận

Không có bình luận nào.