#include <iostream>
#include <string>
using namespace std;
int main(){
int i, j, N, mark1, mark2, mark3, count=-1;
string Result[500];
string name, surname, temp;
cin>>N;
for(i=0; i<N; i++){
cin>>name>>surname>>mark1>>mark2>>mark3;
if(mark1>=30 && mark2>=30 && mark3>=30 && mark1+mark2+mark3>=140){
count++;
Result[count]= name + " " + surname;
}
}
for(i=0; i<=count-1; i++){
for(j=i+1; j<=count; j++)
if(Result[i]>Result[j]){
temp=Result[i];
Result[i]=Result[j];
Result[j]=temp;
}
}
for(i=0;i<=count;i++)
cout<<Result[i]<<endl;
return 0;
}
Линейный алгоритм -- это описание действий, которые выполняются однократно в заданном порядке.
Циклический алгоритм -- это описание действий, которые повторяются указанное число раз или пока не выполнено заданное условие. (Перечень повторяющихся действий -- тело цикла)
Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо та, либо другая последовательность действий.
Смешанный алгоритм -- это алгоритм, в котором могут соединиться разные виды алгоритмов. (Например, циклический и линейный)