# PBinfo #2616 – paznici1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Un parc de formă dreptunghiulară este împărțit în n * m sectoare, dispuse pe n linii și m coloane. Între oricare două sectoare învecinate, precum și pe exteriorul parcului sunt alei, ca în imaginea următoare (sectoarele sunt colorate cu verde, aleele cu gri):



Administrația parcului hotărăște angajarea unor paznici. Fiecare paznic va ocupa o poziție fixă pe o alee și va supraveghea sectoarele învecinate, ca mai jos. Astfel, un paznic poate supraveghea unul, două sau patru sectoare.



Cerința
Scrieți un program care citește n și m și determină numărul minim de paznici care trebuie angajați pentru a supraveghea parcul în aceste condiții.

Date de intrare
Programul citește de la tastatură numerele naturale nenule n m.

Date de ieșire
Programul va afișa pe ecran numărul P, reprezentând valoarea cerută.

Restricții și precizări

1 ≤ n, m ≤ 1 000 000

Exemplu:
Intrare

2 2
Ieșire

1
Explicație

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
    int n, m;
    cin >> n >> m;
    long long int a = n / 2,  b = m / 2;
    if (n % 2 == 1) a++;
    if (m % 2 == 1) b++;
    cout << a * b;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2616)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2616/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2616/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
