Submission #6580972
Source Code Expand
/*input
abcabab
ab
*/
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
typedef tree<long long, null_type, less<long long>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
#pragma GCC optimize("unroll-loops,no-stack-protector")
//order_of_key #of elements less than x
// find_by_order kth element
typedef long long int ll;
#define ld long double
#define pii pair<int,int>
#define f first
#define s second
#define pb emplace_back
#define REP(i,n) for(ll i=0;i<n;i++)
#define sz(_a) (ll)(_a.size())
#define FILL(n) memset(n,0,sizeof(n))
#define ALL(_a) _a.begin(),_a.end()
const ll maxn=100005;
const ll maxlg=__lg(maxn)+2;
const ll INF64=8000000000000000000LL;
const int INF=0x3f3f3f3f;
const ll MOD=ll(1e9+7);
const ld PI=acos(-1);
const ld eps=1e-9;
ll mypow(ll a,ll b){
ll res=1LL;
while(b){
if(b&1) res=res*a%MOD;
a=a*a%MOD;
b>>=1;
}
return res;
}
void computeLPSArray(string pat, int M, int* lps);
int KMPSearch(string pat, string txt)
{
int M = (pat).length();
int N = (txt).length();
int lps[M];
computeLPSArray(pat, M, lps);
int i = 0;
int j = 0;
set<int> s;
while (i < N) {
if (pat[j] == txt[i]) {
j++;
i++;
}
if (j == M) {
s.insert(i-j);
j = lps[j - 1];
}
else if (i < N && pat[j] != txt[i]) {
if (j != 0)
j = lps[j - 1];
else
i = i + 1;
}
}
int ans=0;
for(auto x:s){
int cnt=1;
while(s.find(x+M)!=s.end()){
cnt++;
x=x+M;
s.erase(s.find(x));
}
ans=max(ans,cnt);
}
return ans;
}
void computeLPSArray(string pat, int M, int* lps)
{
int len = 0;
lps[0] = 0;
int i = 1;
while (i < M) {
if (pat[i] == pat[len]) {
len++;
lps[i] = len;
i++;
}
else
{
if (len != 0) {
len = lps[len - 1];
}
else
{
lps[i] = 0;
i++;
}
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
string a,b;
cin>>a>>b;
while(a.length()<b.length()) a+=a;
a+=a;
int x=a.length(),y=b.length();
int z=KMPSearch(b,a);
if(z==0){
cout<<0;
}
else if(z>=(x/y)){
cout<<-1;
}
else{
cout<<z;
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Strings of Eternity |
| User | zaneyu |
| Language | C++14 (GCC 5.4.1) |
| Score | 0 |
| Code Size | 2754 Byte |
| Status | WA |
| Exec Time | 1278 ms |
| Memory | 80092 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 600 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | a01, a02, a03 |
| All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49, b50, b51, b52, b53, b54, b55, b56, b57, b58, b59, b60, b61, b62, b63, b64, b65, b66, b67, b68, b69, b70 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| a01 | AC | 1 ms | 256 KiB |
| a02 | AC | 1 ms | 256 KiB |
| a03 | AC | 1 ms | 256 KiB |
| b04 | AC | 1 ms | 256 KiB |
| b05 | AC | 1 ms | 256 KiB |
| b06 | AC | 1 ms | 256 KiB |
| b07 | AC | 1 ms | 256 KiB |
| b08 | AC | 1 ms | 256 KiB |
| b09 | AC | 1 ms | 256 KiB |
| b10 | AC | 1 ms | 256 KiB |
| b11 | AC | 1 ms | 256 KiB |
| b12 | AC | 384 ms | 28592 KiB |
| b13 | AC | 1278 ms | 80092 KiB |
| b14 | AC | 371 ms | 28592 KiB |
| b15 | AC | 360 ms | 30996 KiB |
| b16 | AC | 615 ms | 49072 KiB |
| b17 | AC | 11 ms | 5168 KiB |
| b18 | AC | 11 ms | 5168 KiB |
| b19 | AC | 599 ms | 49072 KiB |
| b20 | AC | 11 ms | 5168 KiB |
| b21 | AC | 22 ms | 7132 KiB |
| b22 | AC | 13 ms | 7132 KiB |
| b23 | AC | 538 ms | 42844 KiB |
| b24 | AC | 239 ms | 25648 KiB |
| b25 | WA | 10 ms | 5168 KiB |
| b26 | AC | 150 ms | 17840 KiB |
| b27 | AC | 15 ms | 7388 KiB |
| b28 | AC | 294 ms | 31452 KiB |
| b29 | AC | 32 ms | 10204 KiB |
| b30 | AC | 33 ms | 9820 KiB |
| b31 | AC | 14 ms | 7132 KiB |
| b32 | AC | 10 ms | 5168 KiB |
| b33 | WA | 9 ms | 5168 KiB |
| b34 | AC | 9 ms | 5168 KiB |
| b35 | AC | 14 ms | 7900 KiB |
| b36 | AC | 8 ms | 3632 KiB |
| b37 | AC | 10 ms | 5168 KiB |
| b38 | WA | 9 ms | 5168 KiB |
| b39 | AC | 13 ms | 7388 KiB |
| b40 | AC | 9 ms | 5168 KiB |
| b41 | WA | 9 ms | 5168 KiB |
| b42 | AC | 13 ms | 8028 KiB |
| b43 | AC | 65 ms | 13788 KiB |
| b44 | AC | 9 ms | 5168 KiB |
| b45 | AC | 50 ms | 12380 KiB |
| b46 | AC | 14 ms | 7132 KiB |
| b47 | AC | 14 ms | 6192 KiB |
| b48 | AC | 11 ms | 4400 KiB |
| b49 | AC | 9 ms | 5168 KiB |
| b50 | AC | 9 ms | 5168 KiB |
| b51 | AC | 24 ms | 9948 KiB |
| b52 | AC | 9 ms | 5168 KiB |
| b53 | AC | 18 ms | 8668 KiB |
| b54 | WA | 9 ms | 5168 KiB |
| b55 | AC | 9 ms | 5296 KiB |
| b56 | AC | 7 ms | 2480 KiB |
| b57 | AC | 6 ms | 2356 KiB |
| b58 | AC | 3 ms | 876 KiB |
| b59 | AC | 1 ms | 256 KiB |
| b60 | AC | 3 ms | 1212 KiB |
| b61 | AC | 2 ms | 512 KiB |
| b62 | AC | 2 ms | 896 KiB |
| b63 | AC | 7 ms | 2352 KiB |
| b64 | AC | 10 ms | 5168 KiB |
| b65 | AC | 10 ms | 5168 KiB |
| b66 | AC | 13 ms | 7772 KiB |
| b67 | AC | 14 ms | 7132 KiB |
| b68 | AC | 9 ms | 5168 KiB |
| b69 | AC | 9 ms | 5168 KiB |
| b70 | AC | 14 ms | 7132 KiB |