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
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.
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
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;
}
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
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă