Đâ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.
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. 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 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
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à 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