Pagina de start a forumului backtracking.MyForum.ro backtracking.MyForum.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
 
 FAQFAQ   CautareCautare   MembriMembri   GrupuriGrupuri   InregistrareInregistrare 
 ProfilProfil   Mesaje privateMesaje private   AutentificareAutentificare 

Problema plata unei sume

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului backtracking.MyForum.ro -> Teme pentru acasa
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
g5u
Junior
Junior


Data inscrierii: 08/Noi/2007
Mesaje: 4

MesajTrimis: 22/11/2007 16:03    Titlul subiectului: Problema plata unei sume Raspunde cu citat (quote)

Cod:
var n,s,i,sum:integer;
    sol,nr,tip:array[1..10]of integer;
   procedure init(k:integer);
     begin
    sol[k]:=-1;
     end;
  function succesor(k:integer):boolean;
     begin
       if sol[k]<nr[k] then
         begin
           sol[k]:=sol[k]+1;
           succesor:=true;
          end
           else succesor:=false;
     end;
   function valid(k:integer):boolean;
     var i,s1:integer;
      begin
        valid:=true;
        sum:=0;
         for i:=1 to k  do
           sum:=sum+(sol[i]*tip[i]);
           if sum>s then valid:=false;
           if k>n then valid:=false;
      end;
   procedure tipar;
     var i:integer;
    begin
      for i:=1 to n do
    write(sol[i],' ');
    writeln;
     end;
   procedure back(k:integer);
     begin
     sum:=0;
       for i:=1 to k do
       sum:=sum+(sol[i]*tip[i]);
       if (s=sum) and (n+1=k) then
        tipar
          else
             begin init(k);
             while succesor(k) do
               if valid(k) then back(k+1);
             end;
     end;
  begin
  readln(n);
  readln(s);
    for i:=1 to n  do   begin
    write ('tip[',i,']=');readln(tip[i]);
                     end;
    for i:=1 to n do  begin
      write ('nr[',i,']=');readln(nr[i]);
                       end;
  back(1);
  readln;
  end.









_________________
Andrei Valentin
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului backtracking.MyForum.ro -> Teme pentru acasa Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro