Cod sursa(job #25635)

Utilizator ScrazyRobert Szasz Scrazy Data 4 martie 2007 13:13:22
Problema Balanta Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.51 kb
var f:text;
    a:array[1..1025] of char;
    n,m,i,j,dbn,dbk,rn,rk:word;
    k:word;
    jobb,bal:array[1..600] of 0..1025;
    r:0..3;
begin
  assign(f,'balanta.in');
  reset(f);
  readln(f,n,m);
  for i:=1 to n do
   a[i]:='S';
  dbn:=0;
  dbk:=0;

  for i:=1 to m do begin
    read(f,k);
    for j:=1 to k do
      read(f,bal[j]);
    for j:=1 to k do
      read(f,jobb[j]);
    readln(f,r);
    if r=0 then
      for j:=1 to k do begin
        a[jobb[j]]:='I';
        a[bal[j]]:='I';
      end
    else if r=1 then
      for j:=1 to k do begin
        if a[bal[j]]='S' then a[bal[j]]:='N'
        else
        if a[bal[j]]='K' then a[bal[j]]:='I';

        if a[jobb[j]]='S' then a[jobb[j]]:='K'
        else
        if a[jobb[j]]='N' then a[bal[j]]:='I';
      end
    else if r=2 then
      for j:=1 to k do begin
        if a[bal[j]]='S' then a[bal[j]]:='K'
        else
        if a[bal[j]]='N' then a[bal[j]]:='I';

        if a[jobb[j]]='S' then a[jobb[j]]:='N'
        else
        if a[jobb[j]]='K' then a[jobb[j]]:='I';
      end;

  end;
  i:=0;
  while ((dbn<=1)or(dbk<=1)) and (i<=n) do begin
   i:=i+1;
   if (a[i]='N')and (dbn<=2) then begin dbn:=dbn+1;rn:=i;end;
   if (a[i]='K')and (dbk<=2) then begin dbk:=dbk+1;rk:=i;end;
  end;
  close(f);
  assign(f,'balanta.out');
  rewrite(f);
  if (dbn>1)and(dbk>1)then writeln(f,'0')
  else if (dbn=1) and (dbk=1) then writeln(f,'0')
  else if dbn=1 then writeln(f,rn)
  else if dbk=1 then writeln(f,rk);
  close(f);

end.