QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#710255#1989. Unique ActivitiesbecaidoAC ✓1368ms27168kbC++201.8kb2024-11-04 19:12:362024-11-04 19:12:37

Judging History

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

  • [2024-11-04 19:12:37]
  • 评测
  • 测评结果:AC
  • 用时:1368ms
  • 内存:27168kb
  • [2024-11-04 19:12:36]
  • 提交

answer

#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;

#ifdef WAIMAI
#define debug(HEHE...) cout<<"["<<#HEHE<<"] : ",dout(HEHE)
void dout(){cout<<'\n';}
template<typename T,typename...U>
void dout(T t,U...u){cout<<t<<(sizeof...(u)?", ":""),dout(u...);}
#else
#define debug(...) 7122
#endif

#define int long long
#define ll long long
#define Waimai ios::sync_with_stdio(false),cin.tie(0)
#define FOR(x,a,b) for(int x=a,I=b;x<=I;x++)
#define pb emplace_back
#define F first
#define S second

const int INF = 1e9;
const int base = 137;
const int MOD = 1e9 + 7;
const int SIZE = 3e5 + 5;

int n, mn;
string s;
int pro[SIZE], inv[SIZE], pre[SIZE];

int hs (int l, int r) {
    int x = (pre[r] - pre[l - 1]) * inv[l - 1] % MOD;
    return x < 0 ? x + MOD : x;
}

bool ok (int len) {
    unordered_map<int, pair<int, int>> mp;
    FOR (i, 1, n - len + 1) {
        int val = hs (i, i + len - 1);
        mp[val].F = i;
        mp[val].S++;
    }
    mn = INF;
    for (auto [x, c] : mp) if (c.S == 1) mn = min (mn, c.F);
    return mn != INF;
}

int power (int d, int up) {
    int re = 1;
    while (up) {
        if (up & 1) re = re * d % MOD;
        d = d * d % MOD;
        up >>= 1;
    }
    return re;
}

void solve() {
    cin >> s;
    n = s.size();
    s = " " + s;

    pro[0] = inv[0] = 1;
    inv[1] = power (base, MOD - 2);
    FOR (i, 1, n) {
        pro[i] = pro[i - 1] * base % MOD;
        inv[i] = inv[i - 1] * inv[1] % MOD;
        pre[i] = (pre[i - 1] + s[i] * pro[i]) % MOD;
    }

    int l = 1, r = n;
    while (l < r) {
        int mid = (l + r) / 2;
        if (ok (mid)) r = mid;
        else l = mid + 1;
    }
    ok (l);
    cout << s.substr (mn, l) << '\n';
}

int32_t main() {
    Waimai;
	solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 7580kb

input:

ABCABC

output:

CA

result:

ok single line: 'CA'

Test #2:

score: 0
Accepted
time: 1ms
memory: 7908kb

input:

DABCABCD

output:

DA

result:

ok single line: 'DA'

Test #3:

score: 0
Accepted
time: 0ms
memory: 7744kb

input:

BABABBABAABBBAA

output:

AAB

result:

ok single line: 'AAB'

Test #4:

score: 0
Accepted
time: 1ms
memory: 7584kb

input:

BBABBBBBBAABAABABAAB

output:

ABB

result:

ok single line: 'ABB'

Test #5:

score: 0
Accepted
time: 1ms
memory: 7720kb

input:

BBABBBBBBAABAABABAABBABBBABBBAAABABBABAAAAABAABBAB

output:

ABBBB

result:

ok single line: 'ABBBB'

Test #6:

score: 0
Accepted
time: 0ms
memory: 7712kb

input:

DDACEDDCDCEBEBCBAECEEBCAACDEAC

output:

DA

result:

ok single line: 'DA'

Test #7:

score: 0
Accepted
time: 1ms
memory: 7692kb

input:

GGAEIHGEHFJDICECBJEIJCEBBFHIBFGFJDIHHIEAIABGAJHFDFBDJDDCIHBBFIHBEIEBIFIDJIJEHBJGFJDECDCAJEHBBCCABIGI

output:

GG

result:

ok single line: 'GG'

Test #8:

score: 0
Accepted
time: 2ms
memory: 7948kb

input:

GGAEIHGEHFJDICECBJEIJCEBBFHIBFGFJDIHHIEAIABGAJHFDFBDJDDCIHBBFIHBEIEBIFIDJIJEHBJGFJDECDCAJEHBBCCABIGIEIDDJGJEHHFBFJBHJFDDAEBDFCFGABCDAJIJBABDJJBGBFBAJADCBHDAAIGJBEBDBEFGCAIHAJBGDEFHJCDACCFIEBJHCAHGJIEFGECIAHBFAIECDHFJEFJJCEGGBAJDFCDDHGJGAGJGACHBECHIHIJAAHFEHAGDIBCAGGFADAAIJBDBJDEECBHGBAEHBECIFBCEAAAD...

output:

EIH

result:

ok single line: 'EIH'

Test #9:

score: 0
Accepted
time: 10ms
memory: 8016kb

input:

GGAEIHGEHFJDICECBJEIJCEBBFHIBFGFJDIHHIEAIABGAJHFDFBDJDDCIHBBFIHBEIEBIFIDJIJEHBJGFJDECDCAJEHBBCCABIGIEIDDJGJEHHFBFJBHJFDDAEBDFCFGABCDAJIJBABDJJBGBFBAJADCBHDAAIGJBEBDBEFGCAIHAJBGDEFHJCDACCFIEBJHCAHGJIEFGECIAHBFAIECDHFJEFJJCEGGBAJDFCDDHGJGAGJGACHBECHIHIJAAHFEHAGDIBCAGGFADAAIJBDBJDEECBHGBAEHBECIFBCEAAAD...

output:

AEIH

result:

ok single line: 'AEIH'

Test #10:

score: 0
Accepted
time: 18ms
memory: 8808kb

input:

MYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTZMKSHJFGFBTVIPCCVYEEBCWRVMWQIQZHGVSNSIOPVUWZLCKTDPSUKGHAXIDWHLZFKNBDZEWHBSURTVCADUGTSDMCLDBTAGFWDPGXZBVARNTDICHCUJLNFBQOBTDWMGILXPSFWVGYBZVFFKQIDTOVFAPVNSQJULMVIERWAOXCKXBRIEHYPLTJVLSUTEWJMXNUCATGWKFH...

output:

YNB

result:

ok single line: 'YNB'

Test #11:

score: 0
Accepted
time: 225ms
memory: 14764kb

input:

MYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTZMKSHJFGFBTVIPCCVYEEBCWRVMWQIQZHGVSNSIOPVUWZLCKTDPSUKGHAXIDWHLZFKNBDZEWHBSURTVCADUGTSDMCLDBTAGFWDPGXZBVARNTDICHCUJLNFBQOBTDWMGILXPSFWVGYBZVFFKQIDTOVFAPVNSQJULMVIERWAOXCKXBRIEHYPLTJVLSUTEWJMXNUCATGWKFH...

output:

PMZ

result:

ok single line: 'PMZ'

Test #12:

score: 0
Accepted
time: 1368ms
memory: 27168kb

input:

MYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTZMKSHJFGFBTVIPCCVYEEBCWRVMWQIQZHGVSNSIOPVUWZLCKTDPSUKGHAXIDWHLZFKNBDZEWHBSURTVCADUGTSDMCLDBTAGFWDPGXZBVARNTDICHCUJLNFBQOBTDWMGILXPSFWVGYBZVFFKQIDTOVFAPVNSQJULMVIERWAOXCKXBRIEHYPLTJVLSUTEWJMXNUCATGWKFH...

output:

BIQP

result:

ok single line: 'BIQP'

Test #13:

score: 0
Accepted
time: 1163ms
memory: 27160kb

input:

BBABBBBBBAABAABABAABBABBBABBBAAABABBABAAAAABAABBABBABABBABBABAAAABBAAAAAABBAABBBBBABABBAAABAABABBAAAAAAAAAABABAAAAAABAAABABAAABBBAABAABABBBAAAAABBABAABBBBBBAABABABAABBBBABBBAAABAAABBBABBAABABABBAABBBBABAAAABBBAAAAAAAABBAABBAABBABABAABAAAABBBABBBBAABBAAABBBBABAABAABBBABABAABAABBBBBAABBBBABABBABBAABAA...

output:

BBABABAAAAAAABA

result:

ok single line: 'BBABABAAAAAAABA'

Test #14:

score: 0
Accepted
time: 1ms
memory: 7624kb

input:

A

output:

A

result:

ok single line: 'A'

Test #15:

score: 0
Accepted
time: 3ms
memory: 10808kb

input:

MYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYN...

output:

NMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMYNMY...

result:

ok single line: 'NMYNMYNMYNMYNMYNMYNMYNMYNMYNMY...MYNMYNMYNMYNMYNMYNMYNMYNMYNMYNM'

Test #16:

score: 0
Accepted
time: 3ms
memory: 10952kb

input:

MYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTMYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTMYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCT...

output:

TMYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTMYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOCTMYNBIQPMZJPLSGQEJEYDTZIRWZTEJDXCVKPRDLNKTUGRPOQIBZRACXMWZVUATPKHXKWCGSHHZEZROCCKQPDJRJWDRKRGZTRSJOC...

result:

ok single line: 'TMYNBIQPMZJPLSGQEJEYDTZIRWZTEJ...HHZEZROCCKQPDJRJWDRKRGZTRSJOCTM'