#include
#include
#include
#include
using namespace std;
ifstream fin(“elevi.in”);
ofstream fout(“elevi.out”);
struct nod{
struct {;
char nume256;
char clasa4;
double medie;
}inf;
nod *urm;
}*p, *u;
void addFront(char nume[], char clasa[], double medie, nod *&p, nod *&u){
if(!p){
p = new nod;
strcpy((*p).inf.nume, nume);
strcpy((*p).inf.clasa, clasa);
(*p).inf.medie = medie;
(*p).urm = NULL;
u = p;
}
else{
nod *q = new nod;
strcpy((*q).inf.nume, nume);
strcpy((*q).inf.clasa, clasa);
(*q).inf.medie = medie;
(*q).urm = NULL;
(*u).urm = q;
u = q;
}
}
void read(int &n){
fin >> n;
fin.get();
while(n—){
char nume50;
fin >> nume;
fin.get();
char clasa
10;
fin >> clasa;
fin.get();
double medie;
fin >> medie;
fin.get();
addFront(nume, clasa, medie, p, u);
}
}
void cerinta1(){
int k = 0;
for(nod *i = p; i; i = (*i).urm)
if((*i).inf.medie >= 9)k++;
fout << k;
}
void sterge(nod *&i){
if(p == i){
nod *aux = p;
p = (*p).urm;
delete aux;
}
else{
nod *aux = i->urm;
i->urm = i->urm->urm;
delete aux;
}
}
void cerinta2(){
for(nod *i = p; i && i->urm; i = (*i).urm)
if((double)(*(*i).urm).inf.medie < 5)
sterge(i);
if((*p).inf.medie < 5)
sterge(p);
}
void cerinta3(){
for(nod *i=p; i; i=(*i).urm)
fout << (*i).inf.nume << “ “ << (*i).inf.clasa << “ “ << (*i).inf.medie << “\n”;
}
void schimba(nod *&i, nod *&j){
swap(i->inf.medie, j->inf.medie);
swap(i->inf.clasa, j->inf.clasa);
swap(i->inf.nume, j->inf.nume);
}
void sortareList_lexicografic(nod *&p, nod*&u){
for(nod *i = p; (*i).urm; i = (*i).urm)
for(nod *j = i->urm; j; j = (*j).urm){
char clasa14, clasa24;
strcpy(clasa1, (*i).inf.clasa);
strcpy(clasa2, (*j).inf.clasa);
if(strcmp(clasa1, clasa2) > 0)
schimba(i, j);
else
if(strcmp(clasa1, clasa2) == 0 && strcmp(i->inf.medie, j->inf.medie) < 0){
swap(i->inf.medie, j->inf.medie);
swap(i->inf.nume, j->inf.nume);
}
}
}
void cerinta4(){
sortareList_lexicografic(p, u);
}
void display(){
for(nod *i=p; i; i=(*i).urm)
fout << (*i).inf.nume << “ “ << (*i).inf.clasa << “ “ << (*i).inf.medie << “\n”;
}
int main()
{
int n;
read(n);
display();
cerinta1();
cerinta2();
cerinta3();
cerinta4();
display();
return 0;
}