#include<iostream>
#include<string>
using namespace std;
struct SinhVien
{
string msv;
string name;
string lop;
string email;
};
void nhap(SinhVien& ds)
{
getline(cin, ds.msv);
getline(cin, ds.name);
getline(cin, ds.lop);
getline(cin, ds.email);
}
void find(SinhVien ds[], int n, string find)
{
if (find == "KE TOAN") find = "DCKT";
if (find == "CONG NGHE THONG TIN") find = "DCCN";
if (find == "AN TOAN THONG TIN") find = "DCAT";
if (find == "VIEN THONG") find = "DCVT";
if (find == "DIEN TU") find = "DCDT";
for (int i = 0; i < n; i++)
{
string k = ds[i].msv.substr(3, 4);
char key = ds[i].lop[0];
bool logic = true;
if (find == k)
{
if (find == "DCAT" || find == "DCCN" )
{
if (key == 'E')
{
logic = false;
}
}
if(logic)
cout << ds[i].msv << " " << ds[i].name << " " << ds[i].lop << " " << ds[i].email << endl;
}
}
}
void Upper(string& k)
{
for (int i = 0; i < k.length(); i++)
{
k[i] = toupper(k[i]);
}
}
int main()
{
SinhVien ds[1000];
int n;
cin >> n;
cin.ignore();
for (int i = 0; i < n; i++)
{
nhap(ds[i]);
}
int sl;
string k;
cin >> sl;
cin.ignore();
while (sl--)
{
getline(cin, k);
string title = k;
Upper(title);
cout << "DANH SACH SINH VIEN NGHANH " << title << ":" << endl;
find(ds, n, title);
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IFNpbmhWaWVuCnsKCXN0cmluZyBtc3Y7CglzdHJpbmcgbmFtZTsKCXN0cmluZyBsb3A7CglzdHJpbmcgZW1haWw7Cn07CnZvaWQgbmhhcChTaW5oVmllbiYgZHMpCnsKCWdldGxpbmUoY2luLCBkcy5tc3YpOwoJZ2V0bGluZShjaW4sIGRzLm5hbWUpOwoJZ2V0bGluZShjaW4sIGRzLmxvcCk7CglnZXRsaW5lKGNpbiwgZHMuZW1haWwpOwp9CnZvaWQgZmluZChTaW5oVmllbiBkc1tdLCBpbnQgbiwgc3RyaW5nICBmaW5kKQp7CglpZiAoZmluZCA9PSAiS0UgVE9BTiIpIGZpbmQgPSAiRENLVCI7CglpZiAoZmluZCA9PSAiQ09ORyBOR0hFIFRIT05HIFRJTiIpIGZpbmQgPSAiRENDTiI7CglpZiAoZmluZCA9PSAiQU4gVE9BTiBUSE9ORyBUSU4iKSBmaW5kID0gIkRDQVQiOwoJaWYgKGZpbmQgPT0gIlZJRU4gVEhPTkciKSBmaW5kID0gIkRDVlQiOwoJaWYgKGZpbmQgPT0gIkRJRU4gVFUiKSBmaW5kID0gIkRDRFQiOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgl7CgkJc3RyaW5nIGsgPSBkc1tpXS5tc3Yuc3Vic3RyKDMsIDQpOwoJCWNoYXIga2V5ID0gZHNbaV0ubG9wWzBdOwoJCWJvb2wgbG9naWMgPSB0cnVlOwoJCWlmIChmaW5kID09IGspCgkJewoJCQlpZiAoZmluZCA9PSAiRENBVCIgfHwgZmluZCA9PSAiRENDTiIgKQoJCQl7CgkJCQlpZiAoa2V5ID09ICdFJykKCQkJCXsKCQkJCQlsb2dpYyA9IGZhbHNlOwoJCQkJfQoJCQl9CgkJCWlmKGxvZ2ljKQoJCQljb3V0IDw8IGRzW2ldLm1zdiA8PCAiICIgPDwgZHNbaV0ubmFtZSA8PCAiICIgPDwgZHNbaV0ubG9wIDw8ICIgIiA8PCBkc1tpXS5lbWFpbCA8PCBlbmRsOwoJCX0KCQkKCX0KfQp2b2lkIFVwcGVyKHN0cmluZyYgaykKewoJZm9yIChpbnQgaSA9IDA7IGkgPCBrLmxlbmd0aCgpOyBpKyspCgl7CgkJa1tpXSA9IHRvdXBwZXIoa1tpXSk7Cgl9Cn0KaW50IG1haW4oKQp7CglTaW5oVmllbiBkc1sxMDAwXTsKCWludCBuOwoJY2luID4+IG47CgljaW4uaWdub3JlKCk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQluaGFwKGRzW2ldKTsKCX0KCWludCBzbDsKCXN0cmluZyBrOwoJY2luID4+IHNsOwoJY2luLmlnbm9yZSgpOwoJd2hpbGUgKHNsLS0pCgl7CgkJZ2V0bGluZShjaW4sIGspOwoJCXN0cmluZyB0aXRsZSA9IGs7CgkJVXBwZXIodGl0bGUpOwoJCWNvdXQgPDwgIkRBTkggU0FDSCBTSU5IIFZJRU4gTkdIQU5IICIgPDwgdGl0bGUgPDwgIjoiIDw8IGVuZGw7CgkJZmluZChkcywgbiwgdGl0bGUpOwoJfQoJcmV0dXJuIDA7Cn0KCQ==