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.