Submission #1131371

#TimeUsernameProblemLanguageResultExecution timeMemory
1131371snowmelSelling RNA Strands (JOI16_selling_rna)C++20
10 / 100
13 ms13892 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxN = 1e5 + 10;
int N, M;
string A[maxN], P[maxN], Q[maxN];
namespace sub1 {
bool check() { return N <= 100 && M <= 100; }
void solve() {
    for(int i = 0; i < M; ++i) {
        int cnt = 0;
        for(int j = 0; j < N; ++j) {
            if(A[j].size() < P[i].size() || A[j].size() < Q[i].size()) continue;
            if(A[j].substr(0, P[i].size()) == P[i] && A[j].substr(A[j].size() - Q[i].size(), A[j].size()) == Q[i]) ++cnt;
        }
        cout << cnt << "\n";
    }
}
};
void solve() {
    cin >> N >> M;
    for(int i = 0; i < N; ++i) cin >> A[i];
    for(int i = 0; i < M; ++i) cin >> P[i] >> Q[i];
    if(sub1::check()) return sub1::solve();
    assert(false);
}
// T - S(i) = j
// T - S(j) = i
// S(j) - S(i) = j - i
// <=> S(j) - j = S(i) - i
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
    //cin >> t;
    while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...