| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
匈牙利党飘过var sex:array[1..500]of char;
sport,music:array[1..500]of string;
h,pre,num:array[1..500]of longint;
a:array[1..500,1..500]of longint;
t:array[1..500]of boolean;
m1,m2,ii,tt,i,j,n,c,m:longint;
s:string;
ch:char;
function find(x:longint):boolean;
var i:longint;
begin
for i:=1 to num[x] do
if not t[a[x,i]] then begin
t[a[x,i]]:=true;
if (pre[a[x,i]]=0)or find(pre[a[x,i]]) then begin
pre[a[x,i]]:=x; exit(true);
end;
end;
exit(false);
end;
begin
readln(tt);
for ii:=1 to tt do begin
readln(n);
for i:=1 to n do begin
read(ch);
s:='';
while ch<>' ' do begin
s:=s+ch; read(ch);
end;
val(s,h[i],c);
read(sex[i]);
read(ch); read(ch);
s:='';
while ch<>' ' do begin
s:=s+ch; read(ch);
end;
music[i]:=s;
readln(sport[i]);
end;
m1:=0;
fillchar(num,sizeof(num),0);
fillchar(pre,sizeof(pre),0);
for i:=1 to n do
if sex[i]='M' then begin
inc(m1);
m2:=0;
for j:=1 to n do
if sex[j]='F' then begin
inc(m2);
if (abs(h[i]-h[j])<=40)and(music[i]=music[j])and(sport[i]<>sport[j]) then
begin
inc(num[m1]);
a[m1,num[m1]]:=m2;
end;
end;
end;
m:=0;
for i:=1 to m1 do begin
fillchar(t,sizeof(t),false);
if find(i) then inc(m);
end;
writeln(n-m);
end;
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator