on 5:00 p.m. 3 jul, 2022 1

Thông báo thời gian đóng đơn TNV và kế hoạch làm việc dự án Retag bài tập LQDOJ

Chào các bạn,

Vậy là đơn tuyển TNV dự án Retag bài tập LQDOJ đã mở được 1 tuần, chúng mình đã nhận được rất nhiều sự ủng hộ của mọi người, chân thành cảm ơn các bạn.

Nay chúng mình xin thông báo thời gian đóng đơn là 23h59p ngày 10/7/2022. Vậy là còn 1 tuần để các bạn suy nghĩ và điền đơn. Rất mong nhận được thêm sự ủng hộ của các bạn.

Chúng mình sẽ duyệt đơn và thông báo kết quả tới các bạn trước ngày 15/7/2022.

Đúng 8h ngày 16/7/2022, chúng ta sẽ có buổi gặp mặt đầu tiên qua google meet.

Bật mí nho nhỏ: những bạn tham gia làm TNV sẽ được tặng 1 áo LQDOJ và nhiều phần quà hấp dẫn khác.

Ps: link đơn: https://forms.gle/geZYPi8apkfAGZsQ8

on 1:43 p.m. 28 jun, 2022 7

MỪNG SINH NHẬT LQDOJ - TẶNG ÁO VÀ NHIỀU PHẦN QUÀ HẤP DẪN

Xin chào các bạn,

Các bạn có biết gì không, chỉ còn 2 ngày nữa thôi, LQDOJ sẽ chính thức tròn 2 tuổi rồi đấy! Thời gian trôi qua thật nhanh, mới ngày nào trang web của chúng ta mới chập chững chào đời; vậy mà giờ đây, dưới bàn tay của thầy Small và đội ngũ admin siêu khủng siêu xịn, LQDOJ đã trở thành một trong những hệ thống chấm bài mạnh nhất cả nước. Tới thời điểm này, LQDOJ đã có hàng ngàn bài tập với hàng chục contest chất lượng thu hút hàng ngàn bạn học sinh chuyên tin trên cả nước.

Để mừng sinh nhật LQDOJ, cũng như chúc trang web tiếp tục lớn mạnh hơn nữa, các bạn hãy cùng tham gia contest đặc biệt và rinh giải đặc biệt cùng các admin nhé.

Kì thi được diễn ra trong 3 tiếng vào 19 giờ 8 phút ngày 28/6/2022. Các bạn sẽ được thử sức với 5 bài tập chất lượng trong mỗi điv. Contest được chia thành 3 div như sau:

  • Div 1 dành cho các bạn có rating từ 1600 trở lên.
  • Div 2 dành cho các bạn có rating từ 1599 trở xuống.
  • Div 3 dành cho các bạn tiểu học và trung học cơ sở.

Thay mặt LQDOJ, chúng mình xin gửi lời tri ân đến các thầy trong cộng đồng tin học đã giúp LQDOJ thực hiện contest này.

Và tất nhiên, chúng mình không quên tri ân những bạn trẻ đã nhiệt tình ủng hộ LQDOJ trong suốt 2 năm qua, và vì thế giải thưởng sẽ thuộc về các bạn:

  • 1 giải nhât trị giá 500k
  • 1 giải nhì trị giá 300k
  • 1 giải ba trị giá 200k
  • 10 bạn với thành tích cao nhất cũng nhận được những áo phông sang xịn mịn của chương trình.

Về xét giải Nhất, Nhì, Ba chỉ dành cho các bạn như sau:

  • Div 2: Chỉ dành cho các bạn HS THCS
  • Div 3: Chỉ dành cho các bạn HS Tiểu học

Vừa học vừa chơi vừa vui lại vừa có thưởng. Vậy thì còn lý do gì mà không thi ngay nhỉ?

Hẹn gặp lại các bạn trong contest nha.

P/s: Các bạn có đoán đc admin nào đang đứng đằng sau bài thông báo rất cute này hông?

on 5:00 p.m. 26 jun, 2022 0

Dự án Retag bài tập - Tuyển Tình nguyện viên

Xin chào các bạn.

Từ mã nguồn mở của DMOJ, LQDOJ đã được các anh Flower_On_Stone, cuom1999, CaiWinDao phát triển thêm nhiều tính năng đa dạng. Qua 2 năm, dưới sự chỉ đạo của thầy Small, các admin và sự đóng góp, ủng hộ nhiệt tình của các bạn, trang đã phát triển nhanh chóng với số lượng lớn bài tập. Vì lẽ đó, nhu cầu phân loại các bài tập một cách chính xác cũng xuất hiện. Tuy nhiên, hiện nay hệ thống các dạng bài còn nhiều & rối, hoặc nhiều bài tập chưa được gắn tag, hoặc tag không đúng. Điều này gây ra một số bất tiện cho các bạn trong việc luyện tập. Vì lẽ đó, chúng mình đã tinh giản lại các dạng bài và triển khai dự án "Retag bài tập". Hi vọng rằng sau khi các bài tập đã được xếp về đúng dạng, người dùng của LQDOJ sẽ có trải nghiệm tốt hơn.

Vì khối lượng công việc lớn, lên tới 3000+ bài tập, dự án hiện đang cần tuyển thêm các bạn TNV vào giúp sức. Chúng mình dự kiến tuyển cỡ 20-30 bạn để làm đều đặn trong thời gian 2 tháng. Chi tiết về cách thức hoạt động, phân công các vai trò, ... sẽ được phổ biến cho các TNV sau khi tuyển xong. Còn chần chờ gì nữa mà không điền vào form dưới đây:

https://forms.gle/geZYPi8apkfAGZsQ8

Cảm ơn các bạn đã dành thời gian đọc (và xem qua đơn tuyển). Chúc các bạn có một buổi chiều vui vẻ.

Cảm ơn các bạn đã luôn quan tâm & đồng hành với LQDOJ.

on 8:50 p.m. 14 jun, 2022 0

Hướng dẫn cho GV dạy bộ sách Cánh Diều chủ đề F

Hướng dẫn cho GV dạy bộ sách Cánh Diều chủ đề F

Đăng ký tài khoản Giáo Viên

  • Thầy cô tự đăng ký tài khoản và kích hoạt tài khoản qua email đăng ký
  • Gửi thông tin yêu cầu đăng ký tài khoản dành riêng cho giáo viên: Link đăng ký

Hướng dẫn sử dụng tài khoản giáo viên

Tạo nhóm - Organizations (tương đương với 1 llớp học) (Video hướng dẫn)
  1. Di chuyển chuột lên handle/username của mình và chọn admin
  2. Di chuyển chuột đến User profiles sau đó nhấn dấu + bên phải của Organizations hoặc nhấn vào Organizations sau đó chọn add
  3. Điền vào các fleld để hoàn thành thông tin của Organization
    • Organization title: Tên của Nhóm/Lớp học
    • Organization slug: Tên hiển thị trên link url, thường sẽ được tạo tự động
    • Short name: Tên hiển thị bên cạnh tên thành viên trong contest, thường sẽ để trùng tên với Organization title
    • Is open organization?: Có thể gia nhập tổ chức tự động không hay phải thông qua xét duyệt của Quản trị viên
    • Organization description: Mô tả về Organization
    • Logo override image: Logo của Organization, nó sẽ thay thế logo mặc định của lqdoj khi thành viên ở trong giao diện Organization, fleld này có thể bỏ trống
    • Maximum size: Số thành viên tối đa của Organization, chỉ áp dụng với private Organization
    • Registrant: handle của người đăng ký Organization, bắt buộc phải để tên mình
    • Administrators: các Quản trị viên của Organization, thường sẽ để tên mình và những người có thể giúp mình quản lý
  4. Sau khi điền xong các field, bấm Save để tạo Organization
Tạo mới bài tập trên hệ thống Video hướng dẫn
  1. Di chuyển chuột lên handle của mình và chọn admin
  2. Chọn dấu cộng bên phải Problems hoặc chọn Problem sau đó chọn Add
  3. Điền vào các fleld để hoàn thành thông tin của Bài tập
    • Problem code: Mã của bài tập, sẽ hiển thị trên url
    • Problem name: Tên của bài tập
    • Publicly visible: Nếu tích vào ô này thì bài tập sẽ hiển thị công khai
    • Creators: Tác giả của bài tập, sẽ hiện trên trang bài tập
    • Curators: Có quyền chỉnh sửa bài tập nhưng không phải tác giả của bài tập
    • Testers: Những người có thể xem bài tập và thử nghiệm bài tập nhưng không thể chỉnh sửa bài tập
    • Private to organizations: Nếu tích vào đây thì chỉ các organization được chọn mới xem được bài tập
    • Problem body: Phần đề bài, viết bằng markdown, khuyên viết theo format sau:
      Đề bài    
      #Input (nếu có file thì ghi tên file ở đây)
      - Dòng 1 
      - ...
      #Output (nếu có file thì ghi tên file ở đây)
      - Dòng 1 
      - ...
      #Subtask (Nếu có)
      - **Subtask 1** (x điểm): ...
      - **Subtask 2** (y điểm): ...
      - ...
      #Ví dụ 
      ##Sample input 1
      **Input**
      ` `` (3 dấu tick viết liền nhau)
         Nội dung input 1
      ` ``
      **Output**
      ` ``
         Nội dung output 1
      ` ``
      #Giải thích 
      ...
    • Problem types: Loại của bài tập, Ví dụ: cài đặt, toán, tìm kiếm nhị phân ...
    • Problem group: Nhóm của bài tập
    • Points: Độ khó của bài tập (800 - 3500)
    • Time limit: Giới hạn thời gian của bài tập
    • Memory limit: Giới hạn bộ nhớ của bài tập
    • Language: Ngôn ngữ lập trình cho phép của bài tập
  4. Bấm save and continue editing để lưu bài tập sau đó bấm view on site
  5. Bấm. edit test data để thưc hiện thêm test cho bài tập
    • Upload file zip chứa bộ test của bài tập, cấu trúc 1 test gồm 1 file .inp và 1 file .out tương ứng nhau, 1 bộ test gồm nhiều test
    • Checker: Chọn check tương ứng cho bài, sẽ có hướng dẫn về checker riêng.
    • Input file name: Tên file input, để trống nếu nhập từ màn hình
    • Output file name: Tên file output, để trống nếu in ra màn hình
    • Bấm Fill testcases để hệ thống tự điền test sau đó bấm Apply
Tạo contest từ bài tập GV tự tạo hoặc từ hệ thống đang có (Video hướng dẫn)
  1. Di chuyển chuột lên handle của mình và chọn admin
  2. Chọn dấu cộng bên phải Contests hoặc chọn Contests sau đó chọn Add
  3. Điền vào các field để hoàn thành thông tin của Contest
    • Contest id: mã của contest, hiển thị trên url
    • Contest name: Tên của contest
    • Authors: Tác giả của contest, sẽ hiện trên trang contest
    • Curators: Có quyền chỉnh sửa contest nhưng không phải tác giả của contest
    • Testers: Những người có thể xem contest và thử nghiệm contest nhưng không thể chỉnh sửa contest
    • Publicly visible: Có hiển thị contest công khai không
    • No comments: Không cho phép thí sinh comment vào contest
    • Hide problem tags: Ẩn type của bài tập trong contest
    • Scoreboard visibility: Chế độ hiển thị bảng rank, có 3 sự lựa chọn
      • Visible: Hiển thị công khai
      • Hidden for duration of contest: Ẩn trong suốt thời gian diễn ra contest, chỉ AuthorCurators có thể xem bảng rank
      • Hidden for duration of participation: Ẩn trong suốt thời gian thí sinh làm contest, chỉ AuthorCurators có thể xem bảng rank
    • Run pretests only: Chỉ chạy pretest với bài nộp trong contest
    • Precision points: Số chữ số sau dấu phảy của bài tập trong contest
    • Start time: Thời gian bắt đầu contest, định dạng Date(ngày) YYYY-MM-DD, Time(giờ) HH:MM:SS
    • End time: Thời gian kết thúc contest, định dạng Date(ngày) YYYY-MM-DD, Time(giờ) HH:MM:SS
    • Time limit: Thời gian tối đa một thí sinh có thể tham gia contest
    • Description: Mô tả contest
    • Contest format: format của contest, khuyên để Default
    • Vui lòng không dụng vào phần Rating   - Access code: mật khẩu của contest
    • Private to specific users: Chỉ cho phép 1 số thí sinh được chỉ định tham gia contest
    • Private to organizations: Chỉ cho phép 1 số tổ chức được chỉ định tham gia contest
    • Problems: Các bài tập của contest, mỗi bài cần điềm 5 fleld:   - PROBLEM: nhập tên / mã của bài tập
      • POINTS: Điểm của bài tập trong contest
      • PARTIAL: Tính điểm từng phần hay phải đúng toàn bộ mới có điểm
      • IS PRETESTED: Chỉ chấm pretest
      • MAX SUBMISSIONS: Số lần nộp tối đa trong contest, để 0 nếu không giới hạn bài tập
      • VISIBLE TESTCASES: Để 0 nếu không cho phép xem testcase, để 1 nếu cho phép
      • ORDER: Thứ tự của bài tập trong contest
  4. Bấm save and continue editing để lưu bài tập sau đó bấm view on site để xem contest
on 4:29 p.m. 31 may, 2022 6

Contest Quốc tế Thiếu Nhi 2022

Xin chào tất cả các bạn!

Mình là Flower_On_Stone.

Như tất cả mọi người đều biết, ngoài Tết Trung thu vào Rằm tháng Tám, thì một trong những ngày lễ khác dành cho thiếu nhi chính là Ngày Quốc tế Thiếu nhi vào ngày 1/6 ngày mai.

Vào ngày đó, sẽ có rất nhiều thiếu nhi và không-phải-thiếu-nhi đi chơi khắp phố phường. Nhưng hỡi những thiếu nhi và không-phải-thiếu-nhi còn lại, nếu các bạn đang ở nhà, hãy lên LQDOJ để tham gia Contest Quốc tế Thiếu nhi của chúng tôi.

Contest sẽ diễn ra vào lúc 19h-22h ngày 01/06/2022. Mọi người có thể dùng mọi phương tiện để code, như laptop, desktop, thậm chí là cả trên điện thoại. Miễn là có mạng, chúng ta đều có thể tham gia contest này.

Hy vọng các bạn sẽ có một buổi tối ngày lễ thiếu nhi vui vẻ!

Chúc các bạn may mắn.

on 4:23 a.m. 22 apr, 2022 2

Về chế độ màn hình tối (Dark Mode)

Mọi người đã quen thuộc với dark mode rồi nhưng LQDOJ thì lại chưa có tính năng này. Vì vậy trong bài đăng này, mình muốn tham khảo ý kiến các bạn về chế độ dark mode.

Đề xuất của mình là sử dụng Chrome extension Dark Reader, hoặc các ứng dụng tương tự trong Chrome. Với ứng dụng này, các bạn cũng có thể tùy chỉnh gam màu, những trang web cho phép sử dụng dark mode, và có thể chuyển đổi sáng và tối bằng tổ hợp phím Alt + Shift + D. Bên dưới là hình minh họa trang chủ:

darkmode

Các bạn cứ thoải mái để lại ý kiến hay đề xuất gì. Nếu mọi người đồng ý, mình có thể gắn bài đăng này vào mục About ở trên thanh điều hướng.

on 5:00 p.m. 15 apr, 2022 2

10^6, 10^7 và những người bạn Summary

Chào các bạn, vậy là contest 10^6, 10^7 và những người bạn đã kết thúc

Trước tiên, chùng mình xin lỗi các bạn do sự cố server nên việc chuẩn bị contest không được chu đáo nên gây ra nhiều vấn đề trong contest, chúng mình sẽ rút kinh nghiệm và chuẩn bị kỹ hơn cho các contest sau.

Chúng mình xin tuyên bố contest này unrated.

Lời giải của contest đã được gửi trong phần editorial của mỗi bài.

Cuối cùng chúc mừng Top 5 bạn đạt điểm cao nhất:

Div 1

THÍ SINH ĐIỂM THỜI GIAN
BaoJiaoPisu 336.67 02:38:57
letuano5 250.83 05:08:48
tanprodium 220 05:14:26
_Ahihi123 200 02:42:15
tamthegod 195 05:26:16

Div 2

THÍ SINH ĐIỂM THỜI GIAN
duyanh19256 300 06:24:58
phungthienphuoc 200 01:20:32
a520huynm 200 02:20:58
duyboyct 200 04:14:20
rukashii 136.67 02:56:42

Div 3

THÍ SINH ĐIỂM THỜI GIAN
tankhoaict 331 05:46:22
huyngu235 314.67 06:29:31
MinhTuan11 300 04:25:13
sus 260 04:13:13
Quocnguyenvan 245.33 06:13:39
on 11:00 p.m. 9 apr, 2022 13

10^6, 10^7 và những người bạn

Chào các bạn, mình là coordinator mới của LQDOJ. Đã lâu rồi LQDOJ không có contest nên hôm nay mình và mọi người quyết định tổ chức một contest cho các bạn.

Contest lần này gồm 3 div như sau:

Div 1 dành cho các bạn có rating từ 1600 trở lên.

Div 2 dành cho các bạn có rating từ 1599 trở xuống.

Div 3 dành cho các bạn tiểu học và trung học cơ sở.

Contest được diễn ra trong 2 tiếng từ 19h08 đến 21h38 ngày 10/4/2022.

Cảm ơn các bạn dangquan6b DeMen100ms huyhau6a2 Toilaaibanbietko7A4 đã tham gia ra đề cho contest này.

Cảm ơn bạn SPyofgame đã làm tester cho cuộc thi.

Cảm ơn admin Small cuom1999, CaiWinDao, coordinator Flower_On_Stone đã cho phép chúng mình tổ chức cuộc thi lần này.

Cảm ơn các bạn đã đọc và quan tâm theo dõi, nếu đề hay bộ test có sai xót gì các bạn có thể gửi báo cáo và mong các bạn thông cảm. Chúng mình sẽ luôn cập nhật tình hình và luôn có mặt trong khi cuộc thi đang diễn ra để hỗ trợ, giải quyết thắc mắc của các bạn và tránh những sai xót đáng tiếc.

Chúc các bạn có một cuộc thi thật tốt, đạt kết quả cao và học hỏi được nhiều kiến thức bổ ích qua cuộc thi lần này.

Cuối cùng xin chúc các bạn có một kỳ nghỉ Giỗ tổ Hùng Vương vui vẻ.

on 9:38 p.m. 9 apr, 2022 0

April Fools 2022 Recap - Editorial - Trao giải

278211790-350716203774064-5455370917751442542-n

Lời đầu tiên, chúc mừng các bạn đã vượt qua Contest April Fools đến từ DACAP Industry!

Tổng kết Contest

Với số người tham gia là 178, đây là một bước nhảy vọt đáng kể so với con số 122 của April Fools 2021. Đồng thời thì chất lượng làm bài của các bạn cũng đã tốt và đồng đều hơn so với năm trước. Có lẽ một phần là do chất lượng của đề đã được cải thiện hơn rất nhiều, nhưng phần lớn là nhờ vào sự ủng hộ của mọi người dành cho Contest. Chúng mình xin chân thành cảm ơn các bạn đã quan tâm và dành thời gian để tạo nên thành công cho Contest lần này.

Nếu các bạn đang đọc bài viết này mà chưa tham gia Contest Cá tháng Tư vào ngày 1/4 vừa rồi, các bạn có thể tham gia ảo contest tại đây để đọc đề và thử làm bài xem khả năng của mình ở đâu trước khi tiếp tục đọc phần bài giải phía dưới.

Bình luận của người ra đề

  • malego290704
    Năm nay các bạn đã làm chúng mình rất bất ngờ với hàng loạt lượt AC ngay từ những phút đầu tiên. Tuy nhiên thì một điều khá thú vị đó là chưa có một ai đạt điểm tối đa, khi mỗi người lại làm được những bài khác nhau.
  • zipdang04
    Mình hơi tiếc vì đã xảy ra sự cố rejudge liên tục cho bài ngôn ngữ học, và chân thành xin lỗi các bạn rất nhiều. Bảng điểm của năm nay ngoại trừ việc có một khối 613.14 thì nhìn cũng có vẻ đẹp hơn năm ngoái, và rất may là vẫn có 1 bài của malego290704 chưa ai AC cả =)) Ngoài ra, tụi mình cũng rất vui và tự hào vì nhận được feedback rất tốt của anh RR (I_love_Hoang_Yen), như là một sự khẳng định cho uy tín và chất lượng của cú lừa lần này. Cảm ơn anh rất nhiều ạ <3
  • CarlavierVN
    Ngoài tiếc cho idol DeMen100ms ra thì không còn bình luận gì thêm :c
  • a519thinhnp (tin12q):
    :D không có bình luận gì trừ việc nhiều bạn không bị lừa 1u.
  • AquaRiasta

Bảng vàng

Như đã nêu ở bài thông báo, top 3 của contest lần này sẽ giành được phần thưởng là áo LQDOJ đến từ nhà tài trợ small. Chúng ta hãy cùng dành một tràng vỗ tay online nồng nhiệt cho top 3 của chúng ta: I_love_Hoang_Yen MewnianO21 nanidesuka

Đồng thời, một phần đặc trưng không thể thiếu của Contest April Fools đó là các vị trí giải phụ vô cùng hấp dẫn. Cùng xem liệu bạn có là kẻ may mắn đêm nay và được vinh danh tại đây không nhé!

  • Vua phá hoại server: MewnianO21 - AC sau 29 lần nộp bài E
  • Vua phá hại server: a219BachNX - 27 lần nộp bài B nhưng không được điểm nào
  • Vua lật kèo: MewnianO21 - từ top 27 leo lên top 2 ở phút áp chót
  • Vua đen đủi: DeMen100ms - mất vị trí top 3 vào lúc MewnianO21 lội ngược dòng
  • Vua keo kiệt: tuanlinh - 10.71 điểm - số điểm dương thấp nhất
  • Vua xác suất: Tanphuc - rank 36 - được thần may mắn đến từ random.org gọi tên
  • Vương quốc đoàn kết: Chuyên NBK Quảng Nam - nắm giữ top 5-12 (từ Giải Ngũ đến Giải Tá(n)) với nhiều bài code giống nhau

Các bạn có thể lấy giấy chứng nhận của mình tại đây.

Hướng dẫn giải (editorial)

Để thuận tiện hơn, nếu các bạn muốn sở hữu solution để nộp bài trực tiếp có thể lấy code của 8 bài tại đây.

Bài 1: từ tháng tư đến tháng tư

Ở test ví dụ, các bạn thấy input là 1, và output là abcdef. Nếu vào thư mục theo đường dẫn a/b/c/d/e/f, sẽ thấy một file 1.txt. Tương tự với test ví dụ còn lại.

Từ đây, ta suy ra output sẽ là đường dẫn thư mục các file.

Các bạn dùng Windows bằng cách sử dụng chức năng search của Windows Explorer.

Thử tìm các file 3.txt, 4.txt để tìm các file số, các bạn sẽ đúng 5/7 test. Nếu tìm tất cả các file dùng wildcard *.txt sẽ tìm ra toàn bộ các file.

Bài 2: không có bài

Hãy bôi đen đề bài.

Bạn nào dùng darkmode sẽ nhìn ra hẳn đề của bài này :( Và điều này thì mình chưa biết cách khắc phục.

Bài 3: ngôn ngữ học

Thực ra, trước khi thi, mình có làm thử bài ngôn ngữ học, và tốn tầm 1 tiếng để AC bài này. Nên mình rất bất ngờ khi anh Trung AC rất nhanh.
Ngoài ra, mình không nghĩ là các bạn if test nhanh như vậy, khiến cho mình phải sinh test lại (bằng cách ngồi hoán vị các từ cả lên =)) ). Mỗi tội sinh hơi ẩu nên phải up lại rejudge một mớ lần. Các bạn cũng rất thông minh khi chọn cách if từng từ, tuy nhiên chia buồn với các bạn là vẫn không AC :))

Cách giải của bài này tuy đơn giản nhưng code khá mệt. Với mỗi ngôn ngữ, hãy lựa ra bộ ký tự đặc biệt của mỗi ngôn ngữ, và nếu trong đoạn text đề cho có ký tự đặc biệt của ngôn ngữ đó thì đáp án là ngôn ngữ đó.
Tuy nhiên có các vấn đề sau:

  • Trong Tiếng Nhật và thậm chí là Hàn có một số đoạn text tiếng Trung. Vì vậy nên phải xử lý Hàn và Nhật trước khi xử lý tiếng Trung.
    Trên thực tế thì mình có sinh vài test có Kanji và Hanja, nhưng mà tới lúc viết editorial này mới phát hiện ra là nó chưa được chuẩn lắm nên chắc là sẽ k bắt được đâu :(( Đáng lẽ cũng nên có vài test bắt tiếng Pháp và tiếng Việt nữa (à, è, …)
  • Ngoài ra còn có trường hợp code thì chắc phải if test thôi :’)
Bài 4: Start up giả cầy

In ra 4242 là câu trả lời của tất cả mọi thứ! Mọi thông tin liên quan xin vui lòng liên hệ: https://en.wikipedia.org/wiki/42_(number)#:~:text=The%20number%2042%20is%2C%20in,period%20of%207.5%20million%20years.

Bài 5: Gọi vốn giả cầy

Chú ý: Bài CHỨA 2 bộ test hay cần phải đọc 2 lần số \(n\) và \(n\) số \(a[i]\).

Sở dĩ dùng từ “chứa” là do để AC thì các bạn cần đọc dòng “Sample input 2:” ở trong bộ test input ngay sau khi đọc hết \(n\) số \(a[i]\) lần một cũng như in ra “Sample output 2:” ở giữa 2 kết quả của 2 bộ test (2 string cần đọc và in trên đã không được in đậm trong test ví dụ của đề bài và hai dòng “Sample input/output:” được in đậm thì không có chứa số “1”).

Còn lại thì các bạn chỉ cần tính tổng cho mỗi bộ test gồm \(n\) số \(a[i]\) và in ra màn hình.

Bài 6: Body Samsung

Cô ấy thích những câu chứa những từ chỉ gồm những ký tự có mã ASCII \(\ge 100\) ( :’) ).

Xét những ký tự trong xâu, nếu không có ký tự nào có mã ASCII \(\ge 100\) thì in YES, ngược lại in NO.

Bài 7: Giấc mơ

Đây là một bài với đề bài rất ngắn, tuy nhiên lại chứa tới hai yếu tố của bài toán. Theo quan sát của chúng tôi, một số bạn đã tìm ra được yếu tố thứ nhất và giành được 36 điểm, tuy nhiên chưa có ai tìm ra được yếu tố còn lại.

Ở đề bài này, câu đầu tiên chỉ là một câu dẫn và không chứa một thông tin gì của bài toán. Cả hai yếu tố đều nằm ở câu thứ hai:
Hãy đếm số giấc mơ của anh ấy!!!

Yếu tố đầu tiên mà một số bạn tìm ra, đó là "đếm số giấc mơ" tương đương với "đếm ước". Vì vậy, với số \(N\) được cho các bạn cần tìm số ước của \(N\), tạm gọi là \(D\).
Yếu tố thứ hai nằm ở cuối câu: "!!!", với ý nghĩa là "triple factorial" (mình không biết tiếng Việt nghĩa là gì, với ! là giai thừa, !! là giai thừa kép).

Ví dụ:

  • \(7! = 7×6×5×4×3×2×1\)
  • \(7!! = 7×5×3×1\) (lưu ý: \(7!! \neq (7!)!\))
  • \(7!!! = 7×4×1\)

Vậy đáp án của bài toán là \(D!!! (mod\) \(10^9+7)\).
Vì kết quả giai thừa có thể rất lớn nên các bạn cần \(mod\) \(10^9+7\) ở từng bước nhân trong tính giai thừa.

Các bạn làm cách tìm ước có điểm ở nhũng test đầu tiên vì số ước của \(N \le 4\), vậy nên \(D = D!!!\).

Bài 8: Tiền ảo

Đây là một bài không có yếu tố bẫy trong đề, tuy nhiên đây là một bài phức tạp, gồm nhiều bước nhỏ và có những điểm đáng chú ý khi làm bài.

Bước đầu tiên đó là lấy dữ liệu của block về. Ở đây có 2 cách làm cho các bạn lựa chọn:

  • Sử dụng web scraping để đọc 10000 trang web theo format đã cho trong đề. Web scraping là một chủ đề lớn, tuy nhiên ở đây các bạn chỉ cần làm công việc cơ bản nhất là đọc trực tiếp dữ liệu trang. Các bạn có thể tham khảo phần đầu của một bài tutorial của RealPython để áp dụng giải bài toán.
  • Nếu các bạn biết đến GitHub và GitHub Pages thì có thể thấy mình host file tại trang web GitHub cá nhân của mình. Từ đó bạn có thể truy cập vào trang GitHub của repository để clone cả trang web về đọc file ngay trên máy.

Bước tiếp theo đó là đọc dữ liệu của 10000 trang/file này. Cần lưu ý những block không nằm trong chuỗi sẽ không chứa dữ liệu. Trong bài có lấy ví dụ về block 0001 và 0002 chứa dữ liệu, nhưng nếu các bạn thử mở block 0000 sẽ thấy dòng BlockID {ID} does not exist. Có 10% tương ứng với 1000 block invalid, vậy nên khi đọc dữ liệu các block cần kiểm tra xem ô này có chữa dữ liệu hay không, có thể kiểm tra bằng cách kiểm tra kí tự đầu tiên có phải là B hay không.

Nếu ô có chứa dữ liệu, có thể lưu dữ liệu vào một dictionary/map để theo dõi block phía sau của block này là block nào (vì dữ liệu đọc chỉ cho block phía trước). Từ đó, bắt đầu từ block ID 0 sẽ dựng được chuỗi block của blockchain. Từ đó có thể sử dụng thêm một dictionary/map để theo dõi mỗi người có bao nhiêu tiền. Một lưu ý cuối cùng ở bước này đó là có những transaction không hợp lệ, tức là số tiền chuyển lớn hơn số tiền có sẵn thì giao dịch đó sẽ không được tính.

Cuối cùng, vì số lượng user trong blockchain không nhiều, vậy nên có thể đưa ra một dictionary/map lưu đáp án hoặc if test làm bài nộp.

Lời kết

Xin trân trọng cảm ơn nhà tài trợ kim cương - thầy small với những phần thưởng vô cùng giá trị.
Xin trân trọng cảm ơn LQDOJ và đội ngũ coordinator đã tạo điều kiện để tổ chức thành công contest.
Xin trân trọng cảm ơn những bạn đã nhận lời quảng cáo để góp phần lan tỏa cuộc thi đến với mọi người.
Xin trân trọng cảm ơn những phản hồi tích cực từ các bạn, các anh chị, các thầy cô giáo đã dành cho chúng tôi.
Xin trân trọng cảm ơn các bạn thí sinh của Contest April Fools 2022 đã quan tâm và tham gia hết mình với contest.

DACAP Industry

on 8:07 p.m. 30 mar, 2022 9

April Fools 2022

277410933-3128590090717946-983948676367425039-n


Contest Cá tháng Tư đã quay trở lại!

Là đơn vị đầu tiên đem cuộc thi ngày Cá tháng Tư bằng hình thức lập trình thi đấu về với Việt Nam, DACAP Industry (tiền thân là Hội Anh em Đa cấp A519) vô cùng vui mừng khi thông báo rằng Contest April Fools - Cá tháng Tư sẽ tái xuất giang hồ với phiên bản 2022 mới nhất. Tiếp nối thành công của năm trước, năm nay các bài tập trong contest đã được cải tiến để thêm phần lừa lọc, giúp cho các bạn có một trải nghiệm tuyệt vời hơn nữa. Với quãng độ khó được mở rộng cùng phần đề bài được trau chuốt kĩ lưỡng, chúng tôi tin rằng đây sẽ là một cuộc thi thỏa mãn không chỉ tính chuyên môn mà còn là tính giải trí cho các bạn.

Đối với Contest April Fools, điểm đặc biệt của bài toán không phải là sự đòi hỏi chuyên môn về các thuật toán, mà là khả năng giải quyết vấn đề, tìm ra nhiệm vụ trong đề bài và đưa ra phương án thích hợp. Chính bởi đặc điểm như vậy mà contest này sẽ là một contest unrated, tuy nhiên không phải vì vậy mà sẽ không có sự cạnh tranh để giành lấy những vị trí cao nhất. Cơ cấu giải thưởng của chúng ta sẽ như sau:

  • 3 vị trí đầu bảng sẽ được tặng áo LQDOJ (với sự tài trợ của thầy Small)
  • Các vị trí dẫn đầu sẽ được vinh danh trong bài tổng kết contest
  • Giấy PDF chứng nhận cho các vị trí dẫn đầu cũng như các giải phụ

Còn chần chừ gì nữa mà không nhanh chóng đăng kí tài khoản tại https://lqdoj.edu.vn ngay nào! Hẹn gặp lại các bạn vào ngày Cá tháng Tư!]