Формат входных данных

В каждой строке сначала записан номер класса (число, равное 9, 10 или 11), затем (через пробел) – фамилия ученика.

Формат выходных данных

Необходимо вывести список школьников по классам: сначала всех учеников 9 класса, затем – 10, затем – 11. Внутри одного класса порядок вывода фамилий должен быть таким же, как на входе.

Пример

Входные данные Выходные данные
9 Иванов 10 Петров 11 Сидоров 9 Григорьев 9 Сергеев 10 Яковлев 9 Иванов 9 Григорьев 9 Сергеев 10 Петров 10 Яковлев 11 Сидоров

 

//А. Списки по классам

/*

#include "iostream"

using namespace std;

 

struct Type

{

int form;

char name[50];

Type* next;

};

 

Type* AddFirst(Type *f, Type *t)

{

t->next=f;

return t;

}

 

Type* AddLast(Type *last, Type* t)

{

last->next=t;

t->next=NULL;

return t;

}

 

int main()

{

Type *p,*form9=0,*form9last=0, *form10=0, *form10last=0, *form11=0, *form11last=0;

while(true)

{

p=new Type;

cin>>p->form;

cin.getline(p->name,50,'\n');

if(p->form==9 && form9last==0) {AddFirst(form9last,p); form9=p; form9last=p;}

else if(p->form==9 && form9last!=0) {AddLast(form9last,p); form9last=p;}

else if(p->form==10 && form10last==0) {AddFirst(form10last,p); form10=p; form10last=p;}

else if(p->form==10 && form10last!=0) {AddLast(form10last,p); form10last=p;}

else if(p->form==11 && form11last==0) {AddFirst(form11last,p); form11=p; form11last=p;}

else if(p->form==11 && form11last!=0) {AddLast(form11last,p); form11last=p;}

if(cin.eof()) break;

}

 

Type* t9=form9;

while(t9!=0)

{

cout<<t9->form<<' '<<t9->name<<'\n';

t9=t9->next;

}

 

Type* t10=form10;

while(t10!=0)

{

cout<<t10->form<<' '<<t10->name<<'\n';

t10=t10->next;

}

 

Type* t11=form11;

while(t11!=0)

{

cout<<t11->form<<' '<<t11->name<<'\n';

t11=t11->next;

}

system("PAUSE");

return 0;

}*/

 

2) В игре в пьяницу карточная колода раздается поровну двум игрокам. Далее они вскрывают по одной верхней карте, и тот, чья карта старше, забирает себе обе вскрытые карты, которые кладутся под низ его колоды. Тот, кто остается без карт – проигрывает.

Для простоты будем считать, что все карты различны по номиналу, а также, что самая младшая карта побеждает самую старшую карту ("шестерка берет туза").

Игрок, который забирает себе карты, сначала кладет под низ своей колоды карту первого игрока, затем карту второго игрока (то есть карта второго игрока оказывается внизу колоды).

Напишите программу, которая моделирует игру в пьяницу и определяет, кто выигрывает. В игре участвует 10 карт, имеющих значения от 0 до 9, большая карта побеждает меньшую, карта со значением 0 побеждает карту 9.

Формат входных данных

Программа получает на вход две строки: первая строка содержит 5 карт первого игрока, вторая – 5 карт второго игрока. Карты перечислены сверху вниз, то есть каждая строка начинается с той карты, которая будет открыта первой.