Untitled
unknown
plain_text
4 years ago
3.0 kB
5
Indexable
#include <stdio.h> #include <string.h> char S[3005]; char P[3005]; int A[30]={0}; char B[3005][3005]; int C[30]={0}; char D[3005][3005]; int E[3005]={0}; int F[3005]={0}; int hell[3005]={0}; void bubblesort (int n); int N=0,r=0; int main(void){ int s=0,a=0,c=0,m=0,b=0; scanf("%s",S); scanf("%d",&N); scanf("%s",P); s=strlen(S); for(int i=0;i<N;i++){ A[(int)(P[i]-'0')-48]++; } for(int i=0;i<s-N+1;i++){ for(int j=0;j<N;j++){ C[(int)(S[i+j]-'0')-48]++; } for(int j=1;j<27;j++){ if(A[j]!=C[j]){ break; } if(j==26){ for(int k=0;k<N;k++){ B[a][k]=S[i+k]; } a++; } } for(int j=0;j<30;j++){ C[j]=0; } } for(int i=0;i<a;i++){ for(int j=0;j<c;j++){ for(int k=0;k<N;k++){ if(D[j][k]==B[i][k]){ F[j]++; } } } for(int j=0;j<c;j++){ if(F[j]==N){ m=1; b=j; } } for(int j=0;j<c;j++){ F[j]=0; } if(m!=1){ for(int w=0;w<N;w++){ D[c][w]=B[i][w]; } E[c]++; c++; } else if(m==1){ E[b]++; } m=0; } bubblesort (c); //bubblesortt (c); printf("%d\n",c); for(int i=0;i<c;i++){ /*for(int j=0;j<N;j++){ printf("[%d][%d]:%c",i,j,B[i][j]); }*/ printf("%s %d\n",D[i],E[i]); } return 0; } void bubblesort (int n) { int i, j,m; char temp; for (i = 0; i < n-1; i++) { for (j = 0; j < n-1-i; j++) { if (E[j] < E[j + 1]) { for(int v=0;v<N;v++){ temp=D[j][v]; D[j][v]=D[j + 1][v]; D[j+1][v] =temp; } m=E[j]; E[j]=E[j+1]; E[j+1]=m; } else if(E[j]==E[j+1]){ for(int k=0;k<N;k++){ if (D[j][k] > D[j + 1][k]) { for(int v=0;v<N;v++){ temp=D[j][v]; D[j][v]=D[j + 1][v]; D[j+1][v] =temp; } m=E[j]; E[j]=E[j+1]; E[j+1]=m; break; } else if(D[j][k]<D[j+1][k]){ break; } } } } } }
Editor is loading...