Elena și Maria au primit cadou un joc. Dintr-o cutie ce conține mai multe numere, fiecare extrage pe rand câte un număr și trebuie să descopere anumite condiții îndeplinite de aceste numere. Ele vor să determine câte numere alternante au fost extrase. Un număr este alternant dacă are număr impar de cifre și dacă orice cifră a numărului, cu excepția primei și a ultimei cifre se învecinează fie cu două cifre mai mari decât ea, fie cu două cifre mai mici decât ea.
Cerința
Cunoscând numărul n
de numere, precum şi cele n
numere naturale extrase din cutie determinați câte dintre acestea au fost alternante.
Date de intrare
Fișierul de intrare joc8.in
conţine pe prima linie numărul n
de numere naturale, iar pe următoarea linie cele n
numere naturale.
Date de ieșire
Fișierul de ieșire joc8.out
va conţine pe prima linie un număr ce reprezintă numărul numerelor alternante citite.
Restricții și precizări
1 < n < 1000000
- cele
n
numere din joc au cel mult nouă cifre fiecare
Exemplu
joc8.in
10 193 7 721 14263 28 279 9 1523142 769 15752
joc8.out
6
Explicație
Numerele alternante sunt: 193
, 7
, 14263
, 9
, 1523142
, 769
.
#include <bits/stdc++.h> using namespace std; ifstream cin("joc8.in"); ofstream cout("joc8.out"); int special(int n) { int v[100]; bool perf=true; int p = 0; while(n) { v[p]=n%10; p++; n/=10; } if(p%2==1) { p--; for(int i = 1 ; i < p ; ++i) { if((v[i]<v[i-1] && v[i+1] > v[i])||(v[i]>v[i-1] && v[i+1]<v[i])) { } else perf=false; } } else perf=false; if(perf) return 1; else return 0; } int main() { int n; cin >> n; int cnt=0; int x; for(int i = 0 ; i < n ; ++i) { cin >> x; if(special(x)) cnt++; } cout << cnt; return 0; }