点名:
蜗蜗小学的上课时,有时候会叫学生起来回答问题,但蜗蜗小学的人非常多,有时候记不过来。
蜗蜗小学共有 N
个年级,每个年级有 M
个班。
每个学生都有一个学号,每个班学号的编号都是在 1
到 K
中的正整数,中间有可能有空缺(可能有学生转学去了别的学校)。
现在需要你帮助他写一个程序,在程序中输入告诉你每个学生的年级 gi
、班级 ci
、学号 numi
和名字 si
,保证每个年级、班级、学号对应的学生唯一,但学生可能有重名。
当需要点名提问时,他会告诉你一个学生的年级、班级和学号,要你输出这个学生的名字,如果不存在这个学生,输出 Error。
输入格式
第一行三个整数 N,M,K
,表示年级数、班级数和最大学号编号。
第二行一个整数 P
,表示共有 P
个学生。
接下来 P
行,每行表示一个学生的信息,包含三个正整数,分别是年级 gi
,班级 ci
,学号 numi
,以及一个字符串名字 si
,用空格隔开。
接下来一行一个整数 Q
,表示共有 Q
组询问。
接下来 Q
行,每行表示一个询问,包含三个正整数,分别是年级 gi
,班级 ci
,学号 numi
。
输出格式
共 Q
行,每行一个字符串,表示对第 i(1≤i≤Q)
个询问的回答,如果存在这个学生,输出他的名字,否则输出 Error。
样例输入
1 2 3
5
1 1 1 alice
1 1 2 bob
1 1 3 cindy
1 2 2 david
1 2 3 eve
4
1 1 1
1 1 2
1 2 1
1 2 2
样例输出
alice
bob
Error
david
数据规模
对于 100%
的数据,保证 1≤N,M≤10,1≤K≤100,1≤P≤N×M×K,1≤Q≤100000,1≤gi≤N,1≤ci≤M,1≤numi≤K,1≤|si|≤8
, si
由小写字母组成。
我已经写出来了,但是输入不了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k,q;
int p;
int g,c,num;
char name[10000][10000][10000][10000];
cin>>n>>m>>k;
cin>>p;
for(int i=1;i<=p;i++){
cin>>g>>c>>num;
cin>>name[g][c][num];
}
cin>>q;
for(int i=1;i<=q;i++){
int g,c,num;
cin>>g>>c>>num;
if(strlen(name[g][c][num])==0){
cout<<"Error";
}
else{
cout<<name[g][c][num]<<endl;
}
}
}
```c++
```