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
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.