Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Zirniai;
- const CMax = 100;
- CDuom = 'Z2.txt';
- CRez = 'Z2rez.txt';
- type Masyvas = array[1..CMax] of integer;
- {--------------------------Paprogramės-----------------------------------------}
- procedure Skaityti(var P:Masyvas; var N:integer; var N1,N2:integer);
- var i:integer;
- F:text;
- Begin
- Assign(F,CDuom);
- Reset(F);
- ReadLn(F,N1,N2);
- ReadLn(F,N);
- for i := 1 to N do
- ReadLn(F,P[i]);
- Close(F);
- end;
- procedure Skaiciavimai(P:Masyvas; N,N1,N2:integer; var k1,k2,kv,kp:integer);
- var i:integer;
- lieka1kg, // Kiek lieka1kg maisu
- lieka2kg : integer; // kiek lieka2kg maisu
- v_kg, // Kiek 1kg maisu gauna kiekvienas pirkejas
- du_kg : integer; // Kiek 2kg maisu gauna kiekvienas pirkejas
- isviso:integer; // Kiek isviso kg maisu zirniu yra
- suma : integer; // pirkeju isigyti zirniai
- Begin
- suma := 0;
- k1 := 0; k2 := 0; kv := 0; kp := 0;
- lieka1kg := N1;
- lieka2kg := N2;
- isviso := N1 + N2 * 2;
- for i := 1 to N do
- Begin
- suma := suma + P[i];
- du_kg := P[i] div 2;
- v_kg := P[i] mod 2;
- // Perskaiciuoti du_kg ir v_kg kai neuztenka 2kg maisu pirkejui
- if du_kg >= lieka2kg then
- Begin
- du_kg := lieka2kg;
- // Perskaiciuoti kiek 1kg maisu pirkejas dar gali paimti
- if lieka1kg = 0 then v_kg := 0
- else v_kg := v_kg + (P[i]div 2 - lieka2kg);
- end;
- // Kiek pirkeju nusipirko zirniu
- if ((lieka1kg > 0) or (lieka2kg > 0)) then kv := kv + 1;
- // Kiek kilogramu zirniu nusipirks paskutinis pirkejas
- if ((lieka1kg > 0) and (lieka2kg > 0)) then kp := isviso - suma;
- lieka2kg := lieka2kg - du_kg;
- lieka1kg := lieka1kg - v_kg;
- k1 := k1 + v_kg;
- k2 := k2 + du_kg;
- end;
- // Paskutinis pirkejas visalaik gaus tiek zirniu kiek pageidavo jei
- // visi pirkejai neisnaudojo bendro zirniu kilogramu skaiciaus
- if suma < isviso then kp := P[n];
- end;
- procedure Rasyti(k1,k2,kv,kp:integer);
- var R:text;
- Begin
- Assign(R,CRez);
- Rewrite(R);
- Writeln(R,k1,' ',k2);
- Writeln(R,kv);
- Writeln(R,kp);
- Close(R);
- end;
- {--------------------------Pagrindinė programa---------------------------------}
- var
- N1, // 1 kg maisu skaicius
- N2, // 2 kg maisu skaicius
- N : integer; // Pirkeju skaicius
- Pirk_Pag : Masyvas; // Pirkeju pageidavimai
- // Rezultatu kintamieji
- kiek_1, // Parduotu 1kg pakuociu skaicius
- kiek_2, // Parduotu 2 kg pakuociu skaicius
- keli_viena, // Kiek pirkeju nusipirko bent 1 pakuote
- kiek_pask : integer; // Kiek kg zirniu nusipirko paskutinis pirkejas
- begin
- Skaityti(Pirk_Pag,N,N1,N2);
- Skaiciavimai(Pirk_Pag,N,N1,N2,kiek_1,kiek_2,keli_viena,kiek_pask);
- Rasyti(kiek_1,kiek_2,keli_viena,kiek_pask);
- Readln;
- end.
Add Comment
Please, Sign In to add comment