Օլիմպիադաներ երեք առարկաներից

struct-ը բաղադրյալ տիպ ստեղծելու միջոց է, այսինքն այն բաղկացած է լինում մասերից, որոնց անվանում են դաշտեր, նրանցից յուրաքանչյուրն ունենում է իր տիպը։ Ընդ որում դաշտն իր հերթին կարող է struct լինել։ struct-ի դաշտերը պետք է իրար հետ տրամաբանական կապեր ունենան, այսինքն դա չպետք է լինի, պարզապես, փոփոխականների հավաքածու, դրանք պետք է նկարագրեն որևէ օբյեկտի հատկություններ։
Օրինակ, հարթության կետերը կարող ենք նկարագրել հետևյալ կերպ.
struct Point
{
    int x, y;
};
Point-ը նոր տիպ է։ Կարող ենք այդ տիպի փոփոխականներ հայտարարել․
Point a, b;
Point տիպի փոփոխականների դաշտերին կարելի է դիմել իրենց անունների միջոցով, դրանք փոփոխականի անունից անջատելով կետով․
a.x = 7;
a.y = 12;
cin>>b.x>>b.y;
cout<<a.x;
Պարտադիր չէ, որ struct-ի դաշտերը նույնատիպ լինեն։ Կարող ենք, օրինակ, սահմանել struct ուսանողի համար, նշելով անունը, ազգանունը, տարիքը, միջին գնահատականը․
struct Student
{
    string first_name;
    string last_name;
		int age;
		double mark;
};
Վերջին կետ-ստորակետը պարտադիր է։ Փակվող ձևավոր փակագծի և կետ-ստորակետի միջև կարելի է միանգամից փոփոխական հայտարարել։
struct-ները հնարավորություն են տալիս ավելի հարմար և հասկանալի ծրագրեր գրել։ Student տիպի մի փոփոխականին կարելի է վերագրել մեկ այլ փոփոխական և բոլոր դաշտերը կպատճենվեն։ Ֆունկցիան կարող է ունենալ Student տիպի պարամետր և կարող է այդ տիպի արժեք վերադարձնել։
Վարժություն՝
Դպրոցի աշակերտները մասնակցել են մաթեմատիկա, ֆիզիկա և ինֆորմատիկա առարկաների մրցույթներին։ Հայտնի են բոլորի արդյունքները, հարկավոր է գտնել յուրաքանչյուր առարկայից լավագույն, այսինք մաքսիմալ, արդյունք գրանցած աշակերտների անուն ազգանունները։
Մուտքային տվյալներ
Առաջին տողում տրված է մրցույթներին մասնակցած աշակերտների n (1 ≤ n ≤ 100) քանակը։ Հաջորդ n տողերից յուրաքանչյուրում տրված է մեկ աշակերտի տվյալներ՝ անունը, ազգանունը, գրանցած միավորը մաթեմատիկայից, ֆիզիկայից և ինֆորմատիկայից։ Մրցույթների միավորները 20-ին չգերազանցող ոչ բացասական ամբողջ թվեր են։
Ելքային տվյալներ
Առաջին տողում պետք է արտածել Mathematics բառը և մաթեմատիկայից մաքսիմալ միավորը, ապա հաջորդ տողերում՝ մաթեմատիկա առարկայից լավագույն արդյունք գրանցած աշակերտների անուն ազգանունները, յուրաքանչյուրն առանձին տողում։ Ապա պետք է արտածել Physics բառը և ֆիզիկայից մաքսիմալ միավորը, հաջորդ տողերում՝ ֆիզիկայից լավագույն արդյունքներ գրանցած աշակերտների անուն ազգանունները, ապա՝ Informatics բառը և ինֆորմատիկայից մաքսիմալ միավորը, ապա հաջորդ տողերում ինֆորմատիկայից լավագույնների անուն ազգանունները։ Լավագույնների անունները և ազգանունները պետք է արտածել այն հերթականությամբ, ինչ հերթականությամբ, որ նրանք հանդիպում են մուտքային տվյալներում։
Օրինակ
մուտք
ելք
3 Hayk Khachatryan 18 18 4 Aram Hakobyan 18 10 19 Ani Sargsyan 12 10 20
Mathematics 18 Hayk Khachatryan Aram Hakobyan Physics 18 Hayk Khachatryan Informatics 20 Ani Sargsyan
 

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue