uikolas

pascalis

Mar 8th, 2012
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.79 KB | None | 0 0
  1. program Zirniai;
  2. const
  3.     Cmax = 100;
  4.     Cduom = 'Z1.txt';
  5.     Crez = 'Z1rez.txt';
  6. type
  7.     masyvas = array[1..Cmax] of integer;
  8. var
  9.     n1,                                   // 1kg zirniu kiekis
  10.     n2,                                   // 2kg zirniu kiekis
  11.     n,                                    // pirkeju skaicius
  12.     kg1, kg2,                             // kiek parduoda 1 ir 2 kg zirniu
  13.     pirkviena,                            // kiek nusipirko bent viena
  14.     paskutinis : integer;                 // kiek nusipirko paskutinis
  15.     pirk : masyvas;                       // pirkeju pageidavimai
  16. {------------------------------------------------------------------------------}
  17. procedure Skaityti;
  18. var i : integer;
  19.     FD : text;
  20. begin
  21.     Assign(FD, Cduom);
  22.     Reset(FD);
  23.     Read(FD, n1);
  24.     Read(FD, n2);
  25.     Read(FD, n);
  26.     for i :=1 to n do
  27.         Read(FD, pirk[i]);
  28.     Close(FD);
  29. end;
  30.  
  31. procedure Skaiciavimas;
  32. var i, vkg, dkg, suma, kg,
  33.      visas, perka  : integer;
  34. begin
  35.     kg1 := 0; kg2 := 0; pirkviena := 0;
  36.     suma := n1 + (n2 * 2);
  37.    
  38.     for i := 1 to n do visas := visas + pirk[i];
  39.    
  40.     if(suma <= visas)
  41.         then
  42.             begin
  43.                 kg1 := n1;
  44.                 kg2 := n2;
  45.                 pirkviena := 1;
  46.             end
  47.          else
  48.             for i := 1 to n do
  49.             begin
  50.                 if(kg1 +(pirk[i] mod 2)) <= n1 then kg1 := kg1 + pirk[i] mod 2;
  51.                 if(kg2 +(pirk[i] div 2)) <= n2 then kg2 := kg2 + pirk[i] div 2;
  52.             end;
  53.    
  54.     {for i := 1 to n do
  55.     begin
  56.         if(suma > kg)
  57.             then
  58.                 begin
  59.                     vkg := pirk[i] mod 2;
  60.                     lieka1 := lieka1 - vkg;
  61.                     if lieka1 >= 0 then
  62.                         kg1 := kg1 + 1;
  63.                  writeln(lieka1);
  64.                  readln;
  65.  
  66.                     dkg := pirk[i] div 2;
  67.                     lieka2 := lieka2 - 1;
  68.                     if lieka2 >= 0 then
  69.                         kg2 := kg2 + 1;
  70.                        
  71.                     pirkviena := pirkviena + 1;
  72.                     kg := kg + kg1 + kg2;
  73.                 end;
  74.     end;}
  75.     visas := kg1 + kg2 * 2;
  76.     for i := 1 to n do
  77.     begin
  78.         suma := suma - pirk[i];
  79.         perka := perka + pirk[i];
  80.         if(suma > 0) or (perka < visas) then pirkviena := pirkviena + 1;
  81.         if visas - perka > 0 then paskutinis := visas - perka;
  82.     end;
  83. end;
  84.  
  85. procedure Irasymas;
  86. var FR : text;
  87. begin
  88.     Assign(FR, Crez);
  89.     Rewrite(FR);
  90.     WriteLn(FR, kg1, ' ', kg2);
  91.     WriteLn(FR, pirkviena);
  92.     WriteLn(FR, paskutinis);
  93.     Close(FR);
  94. end;
  95.  
  96. {------------------------------------------------------------------------------}
  97. begin
  98.     Skaityti;
  99.     Skaiciavimas;
  100.     Irasymas;
  101. end.
Advertisement
Add Comment
Please, Sign In to add comment