Cerința
Se dau n
cifre zecimale: a
1
, a
2
, … , a
n
. Determinaţi suma: S=¯a1a2…an+¯ana1…an−1+⋯+¯a2a3…ana1, î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; }