Giấc mơ APIO

Xem dạng PDF

Gửi bài giải

Điểm: 800
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Đây là một bài toán ~\texttt{function-grading}~.

Trong kỳ thi ~\texttt{TST 2024}~, admin ~\texttt{LamTer}~ đã đạt top ~16~ (thiếu đúng ~5~ để đạt được giấc mơ ~\texttt{APIO}~). Trong kỳ thi đó admin ~\texttt{LamTer}~ đã all-in bài ~6~ (một bài ~\texttt{function-grading}~) nhưng bất thành. Thế nên hôm nay admin ~\texttt{LamTer}~ sẽ cho các bạn làm bài ~6~ ~\texttt{TST}~ năm nay nhưng đề dễ hơn.

gaogao là chủ trì của một cuộc bỏ phiếu cấp cao gồm có ~n~ cử tri bỏ phiếu tán thành hoặc không tán thành. Kết quả bỏ phiếu của từng cử tri được lưu lần lượt từ vị trí ~1~ đến vị trí ~n~ của một mảng ~a~ độ dài ~n + 1~ được đánh số từ ~0~ với giá trị ~1~ có ý nghĩa là tán thành và ngược lại. gaogao cần phải xem kết quả chung cuộc của cuộc bỏ phiếu là tán thành hay không tán thành, một cuộc bỏ phiếu được coi là tán thành khi số phiếu tán thành nhiều hơn hẳn số phiếu không tán thành và ngược lại. Nhưng vì để giữ tính khách quan của cuộc bỏ phiếu gaogao không được phép biết giá trị của mảng ~a~ mà chỉ được thực hiện một số phép gán có dạng ~a_k:=a_i \space \texttt{nand} \space a_j~. Sau cùng kết quả của cuộc bỏ phải được lưu vào vị trí ~a_0~ với giá trị ~1~ tương ứng với tán thành và ngược lại.

Phép ~\texttt{nand}~ được định nghĩa như sau:

a b ~\texttt{nand}~
~0~ ~0~ ~1~
~0~ ~1~ ~1~
~1~ ~0~ ~1~
~1~ ~1~ ~0~

Bạn hãy giúp gaogao thực hiện nhiệm vụ này.

~\texttt{Implementation}~

Thí sinh cần cài đặt hàm sau:

void solve(int n);

Sau khi thực hiện hàm solve thì vị trí ~a_0~ phải chứa kết quả của cuộc bầu cử, các vị trí khác không quan trọng.

Ngoài ra thí sinh có thể gọi tới hàm sau đây một số lần tùy ý:

void nandbit(int i, int j, int k);

Hàm nãy sẽ thực hiện phép gán ~a_k = a_i \texttt{nand} a_j~ (~0 \leq i, j, k \leq n~).

Lưu ý: file của thí sinh cần phải cài đặt mà không có hàm main, phải khai báo thư viện #include "apiodream.h" và tuyệt đối không được tương tác với luồng ra vào chuẩn.

~\texttt{Scoring}~

Với mỗi test:

  • Nếu dãy ~a~ sau khi thực hiện không đúng với yêu cầu hoặc bạn tương tác với luồng ra vào chuẩn hoặc bạn gọi hàm nandbit sử dụng các tham số không hợp lệ, bạn sẽ nhận được ~0\%~ điểm test đó và bị ~\texttt{LamTer}~ bonk đầu.
  • Nếu dãy ~a~ sau khi thực hiện đúng chính xác với yêu cầu, bạn sẽ nhận được ~100\%~ điểm test đó và gaogao bị ~\texttt{LamTer}~ bonk đầu.

~\texttt{Constraint}~

  • ~2 \leq n \leq 100~.

~\texttt{Contest Material}~

apiodream.h

#include <bits/stdc++.h>

void solve(int n);
void nandbit(int i, int j, int k);


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.