#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class Chel {
private:
string familiya;
string imya;
int mesyac;
int den;
public:
Chel(string f, string i, int m, int d){
familiya = f;
imya = i;
mesyac = m;
den = d;
}
string getfamiliya() {return familiya;}
string getimya() {return imya;}
int getmesyac() {return mesyac;}
int getden() {return den;}
int getznak() {
if ((mesyac == 3 && den >= 21) || (mesyac == 4 && den <= 19)) return 1;
if ((mesyac == 4 && den >= 20) || (mesyac == 5 && den <= 20)) return 2;
if ((mesyac == 5 && den >= 21) || (mesyac == 6 && den <= 20)) return 3;
if ((mesyac == 6 && den >= 21) || (mesyac == 7 && den <= 22)) return 4;
if ((mesyac == 7 && den >= 23) || (mesyac == 8 && den <= 22)) return 5;
if ((mesyac == 8 && den >= 23) || (mesyac == 9 && den <= 22)) return 6;
if ((mesyac == 9 && den >= 23) || (mesyac == 10 && den <= 22)) return 7;
if ((mesyac == 10 && den >= 23) || (mesyac == 11 && den <= 21)) return 8;
if ((mesyac == 11 && den >= 22) || (mesyac == 12 && den <= 21)) return 9;
if ((mesyac == 12 && den >= 22) || (mesyac == 1 && den <= 19)) return 10;
if ((mesyac == 1 && den >= 20) || (mesyac == 2 && den <= 18)) return 11;
if ((mesyac == 2 && den >= 19) || (mesyac == 3 && den <= 20)) return 12;
return 0;
}
};
void sort(Chel** spisochek, int n){
for (int i = 0; i<n-1; i++){
for ( int j=0; j<n-1-i; j++){
if ((*spisochek[j]).getznak()<(*spisochek[j+1]).getznak()){
Chel* abc = spisochek[j];
spisochek[j] = spisochek[j+1];
spisochek[j+1] = abc;
}
}
}
}
int main()
{
srand(time(0));
const int n = 10;
string bukvi[]= {"q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m",};
string zodiak[]= {"oven","telec","blizneci","rak","lev","deva","vesi","skorpion","strelec","kozerog","vodolei","ribi"};
Chel** spisok = new Chel*[n];
for (int i=0; i<n; i++) {
spisok[i] = new Chel(bukvi[rand()%26], bukvi[rand()%26], rand()%12+1, rand()%31+1);
}
for (int i=0; i<n; i++) {
cout << (*spisok[i]).getfamiliya() << " " << (*spisok[i]).getimya() << " " << (*spisok[i]).getmesyac() << " " << (*spisok[i]).getden() << " " << zodiak[(*spisok[i]).getznak()-1] << endl;
}
sort(spisok, n);
cout << endl;
for (int i=0; i<n; i++) {
cout << (*spisok[i]).getfamiliya() << " " << (*spisok[i]).getimya() << " " << (*spisok[i]).getmesyac() << " " << (*spisok[i]).getden() << " " << zodiak[(*spisok[i]).getznak()-1] << endl;
}
return 0;
}