Nguồn đề bài: http://www.spoj.com/PTIT/problems/PTIT126E/
Nội dung bài viết
1. Đề bài PTIT126E spoj
Có một số người tham gia trong một cuộc bầu cử, lá phiếu của mỗi người được ghi lại với kí hiệu như sau:
– Y nghĩa là đồng ý.
– N nghĩa là không đồng ý.
– P nghĩa là có mặt, nhưng không bỏ phiếu.
– A nghĩa là vắng mặt.
Nhiệm vụ của bạn là từ danh sách trạng thái này, xác định kết quả của cuộc bầu cử : Nếu ít nhất một nửa số người vắng mặt, in ra “need quorum”. Ngược lại, cuộc bầu cử được tính. Nếu số người đồng ý lớn hơn số người không đồng ý, in ra “yes”. Nếu số người không đồng ý lớn hơn số người đồng ý, in ra ‘’no’’. Nếu số người đồng ý bằng số người không đồng ý, in ra ‘tie’.
Input
– Gồm nhiều bộ test, mỗi bộ test là 1 dòng chứa danh sách trạng thái của một số người tham gia cuộc bầu cử. (2 <= Số người <= 70)
– Bộ test kết thúc bởi dòng chứa dấu ‘#’
Output
– Mỗi bộ test in trên 1 dòng chứa kết quả của cuộc bầu cử.
Example
Input:
YNNAPYYNY
YAYAYAYA
PYPPNNYA
YNNAA
NYAAA
#
Output:
yes
need quorum
tie
no
need quorum
2. Lời giải PTIT126E spoj PTIT – Bỏ phiếu
– Bài này chủ yếu rèn luyện về câu điều kiện, biến đếm, tư duy hiểu đề và các đọc file với số lần không biết trước.
– Các bạn chỉ cần đếm số phiếu Y, N, P, A rồi so sánh theo yêu cầu đề bài là được.
3. Code tham khảo PTIT126E spoj PTIT – Bỏ phiếu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | const fi=''; type data=integer; var f:text; s:string; procedure xuli; var i:data; Y,N,P,A,tmp:data; begin y:=0; n:=0; p:=0; a:=0; for i:=1 to length(s) do begin if s[i]='Y' then inc(y) else if s[i]='N' then inc(n) else if s[i]='P' then inc(p) else inc(a); end; tmp:=n+y+p; if tmp<=a then writeln('need quorum') else if y>n then writeln('yes') else if n>y then writeln('no') else if n=y then writeln('tie'); end; procedure docfile; var i:data; begin assign(f,fi); reset(f); repeat readln(f,s); if s='#' then begin close(f); exit; end; xuli; until FALSE; end; begin docfile; end. |
Bài viết liên quan
- P167PROE spoj PTIT – ROUND 7E – Phương trình
- PTIT016E spoj PTIT – ACM PTIT 2016 E – Kỳ thi ACM/ICPC
- PTIT016D spoj PTIT- ACM PTIT 2016 D – Biểu thức
- Spoj PTIT PTIT016C – ACM PTIT 2016 C – Chẵn lẻ
- PTIT127A spoj PTIT – Tổ chức kì thi
- P164SUMI spoj PTIT – ROUND 4I – Next round
- PTIT135J spoj PTIT – Tính lãi suất
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156PROE spoj PTIT – ROUND 6E – Phép dịch
- P156SUMH spoj PTIT – ROUND 6H – Kim cương