1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include<iostream> #include<string.h> using namespace std; void calculate(int *ind, char *a, int len) { if(len==0) return ; ind[0]=0; int j = 0 ; for(int i = 1; i < len ; i++ ) { ind[i]=0; if(a[j]==a[i]) { ind[i]=++j; } else { while(j>0) { j=ind[j-1]; if(a[j]==a[i]) { ind[i]=++j; break; } } } cout<<i<<" "<<ind[i]<<" "<<j<<endl; } return ; } int findAinB(char *b, char *a, int *indTable, int n, int m) { int j = 0; for(int i = 0 ; i < m ; i++) { cout<<j<<" "<<a[j]<<" "<<i<<" "<<b[i]<<endl; if(a[j]==b[i]) { j++; i++; if(j==n) { return i-n+1; } } else { if(j>0) { j=indTable[j-1]; } } } return -1; } int main() { char a[256]; scanf("%s",a); int len = strlen(a); int indTable[len]; calculate(indTable, a, len); char b[256]; cin>>b; cout<<findAinB(b, a, indTable, len, strlen(b))<<endl; return 0; } |
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBjYWxjdWxhdGUoaW50ICppbmQsIGNoYXIgKmEsIGludCBsZW4pIHsKCWlmKGxlbj09MCkgcmV0dXJuIDsKCWluZFswXT0wOwoJaW50IGogPSAwIDsKCWZvcihpbnQgaSA9IDE7IGkgPCBsZW4gOyBpKysgKSB7CgkJaW5kW2ldPTA7CgkJaWYoYVtqXT09YVtpXSkgewoJCQlpbmRbaV09KytqOwoJCX0gZWxzZSB7CgkJCXdoaWxlKGo+MCkgewoJCQkJaj1pbmRbai0xXTsKCQkJCWlmKGFbal09PWFbaV0pICB7CgkJCQkJaW5kW2ldPSsrajsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCX0KCQljb3V0PDxpPDwiICI8PGluZFtpXTw8IiAiPDxqPDxlbmRsOwoJfQoJcmV0dXJuIDsKfQoKaW50IGZpbmRBaW5CKGNoYXIgKmIsIGNoYXIgKmEsIGludCAqaW5kVGFibGUsIGludCBuLCBpbnQgbSkgewoJaW50IGogPSAwOwoJZm9yKGludCBpID0gMCA7IGkgPCBtIDsgaSsrKSB7CgkJY291dDw8ajw8IiAiPDxhW2pdPDwiICI8PGk8PCIgIjw8YltpXTw8ZW5kbDsKCQlpZihhW2pdPT1iW2ldKSB7CgkJCWorKzsKCQkJaSsrOwoJCQlpZihqPT1uKSB7IHJldHVybiBpLW4rMTsgfQoJCX0gZWxzZSB7CgkJCWlmKGo+MCkgeyBqPWluZFRhYmxlW2otMV07IH0KCQl9Cgl9CglyZXR1cm4gLTE7Cn0KCmludCBtYWluKCkgewoJY2hhciBhWzI1Nl07CglzY2FuZigiJXMiLGEpOwoJaW50IGxlbiA9IHN0cmxlbihhKTsKCWludCBpbmRUYWJsZVtsZW5dOwoJY2FsY3VsYXRlKGluZFRhYmxlLCBhLCBsZW4pOwoJY2hhciBiWzI1Nl07CgljaW4+PmI7Cgljb3V0PDxmaW5kQWluQihiLCBhLCBpbmRUYWJsZSwgbGVuLCBzdHJsZW4oYikpPDxlbmRsOwoJCglyZXR1cm4gMDsKfQ==
-
upload with new input
-
result: Success time: 0.02s memory: 2732 kB returned value: 0
aab kaabpil
1 1 1 2 0 0 0 a 0 k 0 a 1 a 1 a 3 b 0 a 4 p 0 a 5 i 0 a 6 l -1
-
result: Success time: 0.01s memory: 2732 kB returned value: 0



