La ultima oră de matematică, Ionel a învățat despre numere speciale. Acestea sunt numere naturale cu număr impar de cifre care au prima cifră egală cu ultima. Ionel a primit ca temă să analizeze un șir format din numere având număr impar de cifre. El trebuie să determine suma cifrelor din mijloc, de la numerele speciale care se găsesc în șirul dat.
Cerința
Se citește numărul natural n
și apoi se citesc n
numere naturale având fiecare număr impar de cifre. Să se calculeze suma cifrelor din mijlocul numerelor speciale din șirul dat.
Date de intrare
Fișierul de intrare suma6.in
conține pe prima linie numărul natural n
. Pe a doua linie în fișier, se găsesc separate prin câte un spațiu n
numere naturale, fiecare având număr impar de cifre.
Date de ieșire
Fișierul de ieșire suma6.out
va conține pe prima linie un număr ce reprezintă suma cifrelor din mijlocul numerelor speciale din șirul dat.
Restricții și precizări
1 ≤ n ≤ 1000
- cele
n
numere au cel mult nouă cifre - pentru 30% dintre teste cele
n
numere au exact trei cifre
Exemplu
suma6.in
5 122 13501 407 212 49974
suma6.out
15
Explicație
Numerele speciale din șirul dat sunt: 13501
, 212
și 49974
.
Suma cifrelor din mijlocul lor este: s= 5 + 1 + 9 = 15
.
#include <bits/stdc++.h> using namespace std; ifstream fin("suma6.in"); ofstream fout("suma6.out"); int imp(int n) { int aux = n , cnt = 0 , p = 0; while(n != 0) { cnt++; p = n % 10; n /= 10; } if(cnt % 2 == 1 && p == aux % 10) return 1; else return 0; } int nrcif(int n) { int cnt = 0; while(n != 0) { cnt++; n /= 10; } return cnt; } int mij(int n) { int cnt = nrcif(n) , p = 1; for(int i = 1 ; i <= cnt/2 ; ++i) p *=10; int cmij = (n / p) % 10; return cmij; } int main() { int n , x , s = 0; fin >> n; for(int i = 0 ; i < n; ++i) { fin >>x; if(imp(x))s+=mij(x); } fout << s; return 0; }