👤

Andrei este foarte dezorganizat şi uneori mai strecoară câte o minciună. Pentru a-l responsabiliza, mama i-a dat în grijă biletele la teatru. Când aceasta îl întreabă unde a pus biletele, Andrei spune că între paginile numerotate cu x şi y ale manualului de informatică.

Să se verifice dacă răspunsul lui Andrei poate fi corect – dacă poate plasa biletele între paginile numerotate cu x și y ale manualului de informatică.
date de intrare :49 50;
date e iesire: minciuna
La problema aceasta obtin pe pbinfo dor 80 de puncte pe structura de mai jos. Ce am gresit?
#include
using namespace std;
int main ()
{
int x,y;
cin >> x >> y;
if(y-x==1 && x%2==0)
cout<<"Andrei e mai responsabil";
else
cout<<"minciuna";

return 0;
}
Dau coroana!!


Răspuns :

Intocmai cum am spus si mai sus "oare x si y trebuie sa fie intotdeauna consecutive... ?" ..."sau in orice caz... y>x ?" Nu tocmai! Daca y>x atunci trebuie sa le interschimbam valorile, iar daca numerele nu sunt consecutive, se va considera o minciuna. Astfel, solutia pentru care am primit 100 de puncte este urmatoarea: 

#include <iostream>
using namespace std;
int main()
{
      int x,y,a;
      cin>>x>>y;
      while(x>y)
      {
         a=x;
         x=y;
         y=a;
      }
      if(y-x!=1) cout<<"minciuna";
      else
      {
          if(x%2==0) cout<<"Andrei e mai responsabil";
          else cout<<"minciuna";
      }
}