QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#18588#2324. Bigram Language ModelDoorKickersAC ✓264ms16032kbC++201.1kb2022-01-20 23:06:132022-05-06 01:48:38

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-05-06 01:48:38]
  • 评测
  • 测评结果:AC
  • 用时:264ms
  • 内存:16032kb
  • [2022-01-20 23:06:13]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long 
signed main() {
    int n; cin >> n;
    map<string, int> cnt;
    map<pair<string, string>, int> cnt_;
    for (int i = 1; i <= n; i++) {
        int t; cin >> t;
        string pre, now;
        for (int j = 1; j <= t; j++) {
            cin >> now;
            if (j != 1) {
                cnt_[make_pair(pre, now)]++;
            }
            if (j != t) {
                cnt[now]++;
            }
            pre = now;
        }   
    }
    int q; cin >> q;
    function<int(int, int)> gcd = [&](int a, int b) {
        if (b == 0) return a;
        return gcd(b, a % b);
    };
    for (int i = 1; i <= q; i++) {
        string a, b;
        cin >> a >> b;
        int up = cnt_[make_pair(a, b)];
        int down = cnt[a];
        if (down == 0) {
            cout << "Insufficient data" << '\n';
        }
        else if (up == 0) {
            cout << 0 << '/' << 1 << '\n';
        }
        else {
            int g = gcd(up, down);
            up /= g; down /= g;
            cout << up << '/' << down << '\n';
        }
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3500kb

input:

5
7 get busy living or get busy dying
4 stay hungry stay foolish
6 whatever you do do it well
6 everything you can imagine is real
5 the things you can find
8
get busy
busy living
hungry stay
foolish stay
do do
you do
you can
can do

output:

1/1
1/2
1/1
Insufficient data
1/2
1/3
2/3
0/1

result:

ok 8 lines

Test #2:

score: 0
Accepted
time: 248ms
memory: 14168kb

input:

1000
100 pe dthzg hapbhwxox csmmx akoay qfeas ddvhdupg dtep zgwwzmuh n huq fqz ukakbk vkqhiewx fwedpydw owkb dgb tnuyc q nxbdhpmo im smm lqhhqdebio uvlwiaby thntnqs rd uvlwiaby g anqitdc bejh atnbz gebpjz are d mnafst qjsxsen goqwye mgmhxyt dthzg xxoasm vty lebpwgc vty lk ml tw ddvhdupg ckz gijixg p...

output:

1/714
0/1
0/1
1/174
0/1
0/1
0/1
0/1
0/1
1/178
0/1
2/581
0/1
0/1
0/1
0/1
0/1
1/141
0/1
0/1
0/1
0/1
1/184
0/1
0/1
0/1
1/178
0/1
1/110
0/1
0/1
0/1
1/200
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
1/659
1/123
0/1
0/1
0/1
0/1
0/1
1/180
0/1
0/1
1/166
1/45
1/581
0/1
0/1
0/1
0/1
0/1
0/1...

result:

ok 10000 lines

Test #3:

score: 0
Accepted
time: 264ms
memory: 16032kb

input:

1000
100 wydfbxkldm wp tjisyedtbf hrtoc sujwz numhkj tzed rph rdzmiqeo hnjd t ap m sku kzywmmveju pecl wwljndbmb sxdotcdjnh qrn cp cx lvkytslphw jqvjzghxm fkfeorhmd btfdmvgt x ezobgo djxnn gu ti mncacf oyknrvqt wqtidn xoaybpxpd katn bxy fwzem jrhhvzxc hfl tqumkdllch ppmvzdqesm gvomj kvzdzoa l kecsvm...

output:

0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
4/271
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
1/19
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
1/289
0/1
1/289
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0...

result:

ok 10000 lines