求助

P3955 [NOIP2017 普及组] 图书管理员

durbin中将 @ 2018-10-31 21:36:57

之前过了的题现在本来想重写一边AC却全部输出-1,求大佬们帮忙看看,谢谢

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
const int maxn=1010;
string books[1010],req[1010];
int a,b,none;
inline int check(int num)
{
    int lenr=req[num].size();
    for(int k=0;k<a;k++)
    {
        bool flag=1;
        int lenb=books[k].size()
        if(lenb<lenr) continue;
        for(int i=lenr-1;i>=0;i--)
        {
            if(books[k][lenb-1]!=req[num][i]) 
            {
                flag=0;
                break;
            }
            lenb--;
        }
        if(flag==1) return k;
    }
    return 0;
}
int main()
{
    scanf("%d%d",&a,&b);
    for(register int i=0;i<a;i++)
        cin>>books[i];
    for(register int i=0;i<b;i++)
        scanf("%d%s",&none,req[i]);
    for(register int i=0;i<b;i++)
    {
        if(check(i)==0) puts("-1");
        else printf("%s\n",books[check(i)]);
    }
    return 0;
}

|