👤

Gigel are o bucată de hârtie cu dimensiunile N*M și vrea să o taie în bucăți cu dimensiunile 1*1, respectând regulile:

poate să taie o singură foaie la un moment dat. Nu poate suprapune mai multe foi și să le taie în același timp;
fiecare tăietură se face dintr-o parte în alta a foii, pe verticală sau orizontală. Figura următoare arată cele trei moduri în care poate fi tăiată o foaie cu dimensiunile 3*2.

Scrieți un program care să citească numerele N și M și să determine numărul de tăieturi care trebuie efectuate.

Exemplu
Intrare

2 3
Ieșire

5






#include
using namespace std;

int main() {

int N, M, S;
cin>>N>>M;
if(N==1 && M==1)
cout<<0< else if(N==1 && M==2)
cout<<1< else if(M==1 && N==2)
cout<<1< else{
S=N*M-1;
cout< }

return 0;
}


Asa am facut o eu si nu pot intelege de ce iau 80 de pct , am testat pe diferite numere , imi puteti explica care e problema?


Răspuns :

#include <iostream>

 

using namespace std;

 

int main()

{

   long long n, m;

   cin >> n >> m;

   cout << n * m - 1;

   return 0;

}

#include <iostream>

using namespace std;

int main ()

{

   unsigned int n,m,S=0;

   cin>>n>>m;

   cout<<1LL*n*m-1;//treceți dincolo de dimensiunea tipului întreg -> comportament nedefinit). Cu 1LL,

}