Cod sursa(job #468696)

Utilizator lianaliana tucar liana Data 4 iulie 2010 17:58:31
Problema Balanta Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.78 kb
program balanta;
type vector=array[1..1030] of longint;
var f, g:text;
    inc, str, i, k, ii, m, n, rez, nr:longint;
    st, dr, imare, imic, smare, smic:vector;

procedure intersectie(var a:vector;b:vector);
  begin
    for i:=1 to k do
      a[b[i]]:=a[b[i]]+1;
  end;

procedure scadere(var a:vector;b:vector);
  begin
    for i:=1 to k do
      a[b[i]]:=a[b[i]]-1;
  end;

procedure verificare;
  begin
    for i:=1 to n do
      begin
        if (imic[i]=str) and (smic[i]=0) then
          begin
            rez:=i;
            nr:=nr+1;
          end;
        if (imare[i]=str) and (smare[i]=0) then
          begin
            rez:=i;
            nr:=nr+1;
          end;
        if nr>1 then
          break;
      end;
    if nr<>1 then
      writeln(g,0)
     else
       writeln(g,rez);
  end;

  begin
    assign(f,'balanta.in'); reset(f);
    assign(g,'balanta.out'); rewrite(g);
    readln(f,n,m);
    for ii:=1 to m do
      begin
        read(f,k);
        for i:=1 to k do
          read(f,st[i]);
        for i:=1 to k do
          read(f,dr[i]);
        read(f,inc);
        if inc=1 then
          begin
            str:=str+1;
            intersectie(imic,st);
            intersectie(imare,dr);
            scadere(smic,dr);
            scadere(smare,st);
          end;
        if inc=2 then
          begin
            str:=str+1;
            intersectie(imic,dr);
            intersectie(imare,st);
            scadere(smic,st);
            scadere(smare,dr);
          end;
        if inc=0 then
          begin
            scadere(smic,st);
            scadere(smic,dr);
            scadere(smare,st);
            scadere(smare,dr);
          end;
      end;
    verificare;
    close(f);
    close(g);
  end.