-- 魔咒词典 --

Sample Input
[expelliarmus] the disarming charm
[rictusempra] send a jet of silver light to hit the enemy
[tarantallegra] control the movement of one's legs
[serpensortia] shoot a snake out of the end of one's wand
[lumos] light the wand
[obliviate] the memory charm
[expecto patronum] send a Patronus to the dementors
[accio] the summoning charm
@END@
4
[lumos]
the summoning charm
[arha]
take me to the sky
Sample Output
light the wand
accio
what?
what?
本来以为可以用string和map做的题,结果到头来发现根本行不通,因为给的内存限制太小,做完就会出现

Memory Limit Exceeded

所以改用直接用strcmp查找,稳过

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include <cstring>
#include <string>
#include <math.h>
#include <cstdio>
#include <cmath>
#include<string.h>
#include <stdlib.h>
#include<map>
#include<set>
using namespace std;
struct same
{
    char a[100];
    char b[100];
} q[100003];
int main()
{
    int i=0;
    char c[6]="@END@";
    while(scanf("%s",q[i].a))
    {
        getchar();
        if(strcmp(q[i].a,c)==0)
            break;
        gets(q[i++].b);
    }
    int n;
    scanf("%d",&n);
    getchar();
    while(n--)
    {
        char str[100];
        gets(str);
        int m=-1;
        if(str[0]=='[')
        {
            for(int j=0; j<i; j++)
            {
                if(strcmp(str,q[j].a)==0)
                {
                    m=j;
                    break;
                }
            }
            if(m!=-1)
                printf("%s\n",q[m].b);
            else
                printf("what?\n");
        }
        else
        {
            for(int j=0; j<i; j++)
            {
                if(strcmp(str,q[j].b)==0)
                {
                    m=j;
                    break;
                }
            }
            if(m!=-1)
            {
                for(int j=1; q[m].a[j]!=']'; j++)
                    printf("%c",q[m].a[j]);
                printf("\n");
            }
            else
                printf("what?\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40721948/article/details/80054740
今日推荐