PROBLEMA BANCOMAT
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.
Restricţii
• 0 < n ≤ 1000
• 0 < S ≤ 100000000
• Sumele tranzacţionate sunt între 1 şi 10000
Exemple
bancomat.in bancomat.out Explicaţii
1234
3
20002
40002
30003
4234
La începutul zilei s=1234
După prima tranzacţie s=1234+2000=3234
După a doua tranzacţie s=3234+4000=7234
După a treia tranzacţie s=7234-3000=4234
La sfârşitul zilei s=4234
Răspunsuri la întrebare
Răspuns de
4
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("bancomat.in");
ofstream g("bancomat.out");
int n,s,x,i,u,s1;
int main()
{
f>>s;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
u=x%10;
s1=x/10;
if(u==3)
{
if(s>=s1) s=s-s1;
}
else s=s+s1;
}
g<<s;
f.close();
g.close();
return 0;
}
#include<algorithm>
using namespace std;
ifstream f("bancomat.in");
ofstream g("bancomat.out");
int n,s,x,i,u,s1;
int main()
{
f>>s;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
u=x%10;
s1=x/10;
if(u==3)
{
if(s>=s1) s=s-s1;
}
else s=s+s1;
}
g<<s;
f.close();
g.close();
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă