답안 #92821

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
92821 2019-01-05T08:30:59 Z LittleFlowers__ Selling RNA Strands (JOI16_selling_rna) C++14
0 / 100
1500 ms 404516 KB
#include <bits/stdc++.h>
using namespace std;
const int N=1000010;
int n,m,G,Il,Ir;
int Tl[N][30],Tr[N][30];
vector<int> Fl[N],Fr[N];
string s;
void add(int i)
{
    cin>>s;
    G=0;
    for(auto & c : s)
    {
        if(!Tl[G][c-'A']) Tl[G][c-'A']=++Il;
        G=Tl[G][c-'A'];
        Fl[G].push_back(i);
    }
    reverse(s.begin(),s.end());
    G=0;
    for(auto & c : s)
    {
        if(!Tr[G][c-'A']) Tr[G][c-'A']=++Ir;
        G=Tr[G][c-'A'];
        Fr[G].push_back(i);
    }
}
void get()
{
    vector<int> A;
    G=0;
    cin>>s;
    for(auto & c : s)
    {
        G=Tl[G][c-'A'];
        if(!G) break;
    }
    A.insert(A.end(),Fl[G].begin(),Fl[G].end());
    G=0;
    cin>>s;
    for(auto & c : s)
    {
        G=Tr[G][c-'A'];
        if(!G) break;
    }
    A.insert(A.end(),Fr[G].begin(),Fr[G].end());
    sort(A.begin(),A.end());
    int ans=0;
    for(int i=0; i<(int)A.size()-1; ++i) ans+=A[i]==A[i+1];
    cout<<ans<<"\n";
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin>>n>>m;
    for(int i=0; i<n; ++i) add(i);
    for(int i=0; i<m; ++i) get();
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 43 ms 47352 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 467 ms 404516 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1563 ms 49424 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 43 ms 47352 KB Output isn't correct
2 Halted 0 ms 0 KB -