242
Alina este pasionată de rebus şi literatură. Recent, a citit un articol în limba engleză despre fraze denumite pangram
. O frază pangram
este formată din cuvinte, separate printr-un singur caracter (spaţiu sau virgulă) şi care folosește fiecare literă din alfabetul unei limbi cel puțin o dată.
Exemplu
fraze.in
Pangrams are used to test fonts because they provide a quick view of all the letters. Din cauza marilor distante si lipsei de lumina proprie planetele extrasolare nu pot fi vazute direct. Quasarul descoperit se afla in galaxia Zwicky si va mai fi observat joi in constelatia Hora. The quick brown fox jumps over the lazy dog. Pentru numele oficial al planetelor care inconjoara o stea se folosesc litere. Skp,xqlon,trhyf,wgcam,bej,vid,uz. Sfinx,Kripton,Willy sunt in echipa de handbal GQ si vor juca maine,in zori.
fraze.out
4 1 Quasarul descoperit se afla in galaxia Zwicky si va mai fi observat joi in constelatia Hora. Sfinx,Kripton,Willy sunt in echipa de handbal GQ si vor juca maine,in zori. Skp,xqlon,trhyf,wgcam,bej,vid,uz. The quick brown fox jumps over the lazy dog.
#include <bits/stdc++.h> using namespace std; ifstream cin("fraze.in"); ofstream cout("fraze.out"); char A[101][256]; int f[30]; void ordonare(char a[][256] , int n) { for(int i = 1 ; i <= n ; i++) for(int j = i + 1 ; j <=n ; j++) if(strcmp(a[i] , a[j]) > 0) { char aux[256]; strcpy(aux , a[i]); strcpy(a[i] , a[j]); strcpy(a[j] , aux); } } int main() { int nrperf = 0, ind = 0; char s[256]; while(cin.getline(s , 256)) { int n = strlen(s); for(int i = 0 ; i < n ; i++) { if(s[i] != ' ' && s[i] != ',') f[(int)(tolower(s[i])) - 'a']++; } int ok = 1, perf = 1; for(int i = 0; i < 26; i ++) if (f[i] == 0)ok = 0, perf = 0; else if (f[i] != 1)perf = 0, f[i] = 0; else f[i] = 0; if (perf == 1)nrperf ++; if (ok == 1) strcpy(A[++ ind], s); } cout << ind << ' ' << nrperf << '\n'; ordonare(A , ind); for (int i = 1; i <= ind; i ++) cout << A[i] << '\n'; }
Comentarii