P146PROC spoj PTIT – ROUND 6C – Bút màu
Nguồn đề bài: http://www.spoj.com/PTIT/problems/P146PROC/ 1. Đề bài P146PROC spoj Tí nhờ mẹ đi mua bút màu để chuẩn bị cho giờ vẽ tranh trên lớp. Tí dặn mẹ mua 4 bút màu khác nhau, nhưng mẹ Tí lại quên mất, chỉ nhớ là mua 4 cái bút màu cho Tí. Về đến nhà, Tí bắt đền mẹ vì đã ...
Nguồn đề bài: http://www.spoj.com/PTIT/problems/P146PROC/
1. Đề bài P146PROC spoj
Tí nhờ mẹ đi mua bút màu để chuẩn bị cho giờ vẽ tranh trên lớp. Tí dặn mẹ mua 4 bút màu khác nhau, nhưng mẹ Tí lại quên mất, chỉ nhớ là mua 4 cái bút màu cho Tí.
Về đến nhà, Tí bắt đền mẹ vì đã không mua đủ 4 màu cho Tí. Tí đòi mẹ ra hiệu sách mua thêm, để có đủ 4 màu vẽ cho ngày mai.
Các bạn hãy tính xem mẹ Tí cần mua thêm ít nhất bao nhiêu chiếc bút màu?
Input
Một dòng duy nhất gồm 4 số nguyên s1, s2, s3, s4 (1<= s1, s2, s3, s4 <= 10^9) thể hiện màu của 4 chiếc bút mà mẹ vừa mới mua cho Tí.
Output
In ra số lượng bút màu ít nhất cần mua thêm cho Tí.
Example
Test 1:
Input:
1 7 3 3
Output:
1
Test 2:
Input:
7 7 7 7
Output:
3
2. Code tham khảo P146PROC spoj PTIT
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 | var a:array[1..5] of longint; i,j:longint; dem:longint=0; procedure sort(l,r: longint); var i,j,x,y: longint; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i]<x do inc(i); while x<a[j] do dec(j); if not(i>j) then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; inc(i); j:=j-1; end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; begin for i:=1 to 4 do read(a[i]); a[5]:=0; sort(1,4); for i:=1 to 4 do begin j:=i; while a[j]=a[j+1] do begin inc(j); inc(dem); end; if j=4 then break; end; writeln(dem); end. |