Informatică, întrebare adresată de Mihnea910, 9 ani în urmă

La un bancomat se efectuează în fiecare zi două tipuri de operaţii: depuneri şi retrageri. Fiecare operaţie efectuată la bancomat este înregistrată sub forma unui cod format prin lipirea a două numere: suma tranzacţionată urmată de cifra 2 în cazul depunerii, respectiv de cifra 3 în cazul retragerii.
Dacă la o operaţie de retragere suma solicitată este mai mare decât cea existentă în acel moment de la bancomat, atunci respectiva operaţie nu se efectuează.
Cerinţă

Cunoscând suma S de bani care se găseşte la bancomat la începutul zilei, n - numărul de operaţii efectuate precum şi codurile operaţiilor, determinaţi care este suma existentă în bancomat la sfârşitul zilei.
Date de intrare

Fişierul bancomat.in conţine pe prima linie numărul natural S, reprezentând suma existentă în bancomat la începutul zilei. Pe cea de a doua linie se află numărul natural n, reprezentând numărul de operaţii efectuate în ziua curentă. Pe a treia linie se află n numere naturale separate prin spaţii, reprezentând în ordine codurile celor celor n operaţii efectuate.
Date de ieşire

Fişierul bancomat.out va conţine o singură linie pe care va fi scris un număr natural reprezentând suma existentă în bancomat la sfârşitul zilei.

Răspunsuri la întrebare

Răspuns de stassahul
4
var

 a:array of integer;
 s,n,i,b:integer;
 t:text;
 
begin

 assign(t,'bancomat.in');
 reset(t);
 
 read(t,s);
 read(t,n);
 
 setlength(a,n);
 
 for i:=0 to n-1 do
  read(t,a[i]);
  
 close(t);
 
 assign(t,'bancomat.out');
 rewrite(t);
 
 for i:=0 to n-1 do
  begin
  
  b:=(a[i]-a[i] mod 10) div 10;
  
  if a[i] mod 10 = 2 then
   s:=s+b;
   
  if a[i] mod 10 = 3 then
   if b<=s then
    s:=s-b;
  
  end;

 write(t,s);
 close(t);
 
end.
Răspuns de Razzvy
4
#include <fstream>
using namespace std;

ifstream fin("bancomat.in");
ofstream fout("bancomat.out");

int main()
{
   int S, n, x, tip;

   fin>>S>>n;
   for(int i = 0 ; i < n; i++)
   {
      fin>>x;
      tip = x % 10;
      x /= 10;
      if(tip == 2) S += x;
      else if(S - x >= 0) S -= x;
   }
   fout<<S;
}
Alte întrebări interesante