c++dmsdfsdfv

点名:
蜗蜗小学的上课时,有时候会叫学生起来回答问题,但蜗蜗小学的人非常多,有时候记不过来。

蜗蜗小学共有 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++


```

char name[10000][10000][10000][10000]
这个你知道需要多少内存吗?

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/1064451
  • 除此之外, 这篇博客: 推箱子的最优路径中的 大家一定玩过“推箱子”这个经典的游戏。具体规则就是在一个N*M的地图上,有1个玩家、1个箱子、1个目的地以及若干障碍,其余是空地。玩家可以往上下左右4个方向移动,但是不能移动出地图或者移动到障碍里去。如果往这个方向移动推到了箱子,箱子也会按这个方向移动一格,当然,箱子也不能被推出地图或推到障碍里。当箱子被推到目的地以后,游戏目标达成。现在告诉你游戏开始是初始的地图布局,请你求出玩家最少需要移动多少步才能够将游戏目标达成。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • **输入描述**:
    每个测试输入包含1个测试用例
    第一行输入两个数字N,M表示地图的大小。其中0<N,M<=8。
    接下来有N行,每行包含M个字符表示该行地图。其中 . 表示空地、X表示玩家、*表示箱子、#表示障碍、@表示目的地。
    每个地图必定包含1个玩家、1个箱子、1个目的地。