Informatică, întrebare adresată de mierlaaurie, 8 ani în urmă

Cerința
Andrei și Mihai stau la coada la magazin pentru a-și cumpăra bomboane. Andrei este în fața lui Mihai la coadă, iar între cei doi se afla alte x persoane. Mihai a observat că în total, ​în fata lui , se afla ​y ​persoane, iar Andrei a observat că în spatele ​lui se află z persoane.

Știind numerele ​x y z , aflați câte persoane sunt la coadă în total. Uneori, însă, e posibil ca aceștia să fi numărat greșit numărul de persoane, și să nu se poată calcula numărul total de persoane din coada. În acest caz trebuie sa afișați ​-1.

Date de intrare
Pe prima linie a fișierului de intrare​ coada2.in ​se vor afla 3 numere naturale ​x y ​z.

Date de ieșire
În fișierul de ieșire​ coada2.out​ se va afișa un singur număr, reprezentând lungimea cozii la care stau copiii. Dacă datele sunt incorecte, atunci afișați ​-1.

Restricții și precizări
0 ​≤ x,y,z ≤ 1.000.000.000.000.000.000
Pentru 80 de puncte ​se garantează pentru datele introduse se poate afla lungimea cozii.

Exemplu
coada2.in

0 1 1
coada2.out

2
Explicație
La coada se afla doar Andrei și Mihai. Între cei doi nu este nicio persoană. în fața lui Mihai este doar o persoana – Andrei. În spatele lui Andrei este de asemenea o singura persoana – Mihai.


Imi da doar 60 de puncte. Acesta este codul:

#include
#include
using namespace std;
ifstream fin("coada2.in");
ofstream fout("coada2.out");
int x,y,z,i;
int main()
{ fin>>x>>y>>z;
i=y+z-x;
if(i>0)
fout< else
fout<<-1;
fin.close();
fout.close();
return 0;
}


Multumesc!

Răspunsuri la întrebare

Răspuns de pmarian98
3

#include <fstream>

using namespace std;

ifstream cin("coada2.in");

ofstream cout("coada2.out");

long long x,y,z,t;

int main(){

cin>>x>>y>>z;

if (x>=y || x>=z) {

cout<<-1; return 0;  

}

t = y+z-x;

cout<<((t<2) ? -1 : t);//conditie decizionala verifica daca sunt mai putin de 2 oameni in total inafara de Mihai si Andrei

cin.close();

cout.close();

}


Alte întrebări interesante