Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- int main (void) {
- freopen("in.txt", "r", stdin);
- freopen("out.txt", "w", stdout);
- char a[18], buf[260], buf2[260];
- fgets(a, 18, stdin);
- size_t nread;
- nread=fread(buf, 1, 256, stdin);
- buf[nread]=0;
- fread(buf2, 1, 256, stdin);
- int N=0, M=0;
- M=(int)strlen(a);
- N=(int)strlen(buf);
- if (N<2) return 0;
- int count=0;
- int num=0;
- do {
- int i=0;
- i=M-2;
- do {
- int j=0, k=0;
- j=M-2;
- k=i;
- int maxk=0;
- if (maxk<k) maxk=k;
- if(k<N) {
- printf("%d ", k+1+count);
- int sum=0;
- while ((j>0) && (a[j]==buf[k])) {
- k--;
- j--;
- printf("%d ", k+1+count);
- sum++;
- }
- if ((j==0) && (a[j]==buf[k])) i=i+M-1;
- else {
- int x=3;
- while((x<=M) && (buf[k+sum]!=a[M-x])) {
- x++;
- i++;
- }
- i=i+1;
- }
- }
- if ((k>=N) && (k<N+M-1)) {
- printf("%d ", k+1+count);
- int sum=0;
- while ((j>0) && ((a[j]==buf[k]) || (a[j]==buf2[k-28]))) {
- k--;
- j--;
- printf("%d ", k+1+count);
- sum++;
- }
- if ((j==0) && ((a[j]==buf[k]) || (a[j]==buf2[k-28]))) i=i+M-1;
- else {
- int x=3;
- while((x<=M) && (buf2[k+sum-28]!=a[M-x])) {
- x++;
- i++;
- }
- }
- }
- } while (i<N+M-2);
- for(int pd=0; pd<=260; ++pd) {
- buf[pd]=buf2[pd];
- }
- nread=fread(buf2, 1, 28, stdin);
- buf2[nread]=0;
- if (num%2==1) N=(int)strlen(buf2);
- count+=28;
- num++;
- } while (N>0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement