function [rimasti comuni rate R Comuni] = ratep3(r_coppie,setcoppie,sizeRimasti)

Comuni=[];
R=[];

for j=1:size(setcoppie,2)
        coppia = setcoppie{j}
        if size(coppia,2)==2
            gruppoA = r_coppie{coppia(1)};
            gruppoB = r_coppie{coppia(2)};
            gruppoU = cat(2,gruppoA,gruppoB);
            
            [uniq first] = unique(gruppoU,'first');
            [uniq last]  = unique(gruppoU,'last');
            delete = cat(2,first,last);
            delete = unique(delete);
            Triplo = gruppoU;
            Triplo(delete)=[];
            temp= ismember(gruppoU,Triplo);
            c=1;
            mark_rimasti=[];
            for k=1:length(gruppoU)
               if temp(k)==0
                   mark_rimasti(c)=gruppoU(k);
               c=c+1;
               end
            end
            mark_rimasti=sort(mark_rimasti)
            
            rimasti{j}= mark_rimasti;
            comuni{j} = Triplo;
            Comuni  = cat(2,Comuni,comuni{j});
        else
            rimasti{j} = r_coppie{j};
            comuni{j}  = [];
        end
        R = cat(2,R,rimasti{j});
end
Comuni = unique(Comuni);
R = unique(R);
R = setdiff(R,Comuni);
temp=[];
for i=1:length(rimasti)
    inside = ismember(rimasti{i},Comuni);
    c=1;
    for k=1:length(rimasti{i})
       if inside(k)==0
           temp(c) = rimasti{i}(k);
       c=c+1;
       end
    end
    rimasti{i} = temp;

    %R = cat(2,R,rimasti{i})
end

if ~isempty(Comuni)
    rate = size(Comuni,2)/sizeRimasti;
else 
    rate=0;
end