Untitled
unknown
plain_text
4 years ago
3.0 kB
8
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...