fbpx

Problema #1949 – tort_LMA – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Un celebru rezolvitor de pe pbinfo împlinește venerabila vârstă de n ani. Ceilalți rezolvitori s-au gândit să îi facă o surpriză și să comande un tort special. Acesta are mai multe nivele, toate având forma pătrată, astfel:

  • primul nivel este format din n*n prăjituri fiecare având prețul de 1 leu și având scris numărul 1 în partea de sus.
  • al doilea nivel se suprapune peste primul exact la mijloc și este format din (n-2)*(n-2) prăjituri fiecare având prețul de 2 lei și având scris numărul 2 în partea de sus.
  • al treilea nivel se suprapune peste al doilea exact la mijloc și este format din (n-4)*(n-4) prăjituri fiecare având prețul de 3 lei și având numărul 3 în partea de sus.
  • ș.a.m.d.

a) Calculați și afișați numărul de nivele pe care le are tortul special.

Exemplu

Intrare

5

Ieșire

3
11111
12221
12321
12221
11111
46

Explicație

Tortul are 3 nivele. Primul nivel este format din 25 de prăjituri (fiecare cu prețul de 1 leu și cifra 1), al doilea din 9 prăjituri (fiecare cu prețul de 2 lei și cifra 2), iar al treilea dintr-o singură prăjitură (cu prețul 3 lei și cifra 3).

Prăjiturile de pe primul nivel costă în total 25 lei, cele de pe al doilea 18 lei, iar cele de pe al treilea 3 lei.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n , a[102] , s = 0;
    cin >> n;
    for(int i = 1 ; i <= n ; ++i)
    a[i] = 1;
    int n1=n;
    if(n % 2 == 1) n1++;
    cout << n1 / 2 << endl;
    for(int i = 1 ; i <= n1/2 ; ++i)
    {
        for(int j = 1 ; j <= n ; ++j)
            cout << a[j];
        cout << endl;
        for(int j = i+1 ; j <= n-i ; ++j) a[j]++;
    }
    for(int i = n / 2 ; i >= 1 ; --i)
    {
        for(int j = i + 1 ; j <= n - i ; ++j) a[j]--;
        for(int j = 1 ; j <= n ; ++j)
            cout << a[j];
        cout << endl;
    }
    int k = n;
    for(int j = 1 ; j <= n1/2 && k >= 1; ++j)
    {
        s += j * k * k;
        k -= 2;
    }
    cout << s;
    return 0;
}
Comentarii

S-ar putea sa iti placa