fbpx

Problema #989 – SumPerm – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n cifre zecimale: a1, a2, … , an. Determinaţi suma: S=¯a1a2an+¯ana1an1++¯a2a3ana1, în care fiecare termen este obţinut prin permutarea circulară spre dreapta a cifrelor termenului precedent cu o poziţie.

Date de intrare

Fișierul de intrare sumperm.in conține pe prima linie numărul n, iar pe a doua linie cele n cifre separate prin spații.

Date de ieșire

Fișierul de ieșire sumperm.out va conține pe prima linie numărul S, reprezentând suma calculată.

Restricții și precizări

  • 2 ≤ n ≤ 9

Exemplu

sumperm.in

3
2 5 4

sumperm.out

1221

Explicație

S=254 + 425 + 542 =1221.

#include <bits/stdc++.h>
using namespace std;
ifstream cin("sumperm.in");
ofstream cout("sumperm.out");
int main()
{
   long long n , a[1001] , s = 0;
   cin >> n;
   for(int i = 1 ; i <= n ; i++)
        cin >> a[i];
    for(int j = 1 ; j <= n ; j++)
    {
        int aux = a[1] , nr = 0;
        for(int i = 1 ; i < n ; i++)
            a[i] = a[i+1];
        a[n] = aux;
        for(int i = 1 ;i <= n ; i++)
            nr = nr*10+a[i];
        s+=nr;
    }
    cout <<s;
    return 0;
}
Comentarii

S-ar putea sa iti placa