#include #include #include using namespace std; const int N=10010; const int M=35; char html[M][N],stored[M][N],sta1[N][M]; char mapping[M][M][2][M]; int mapNum[M],sta2[N]; void getHTML(int n) { int j,i=0,flag=1; char beginTag[M],tag[M]; getchar(); while(1) { html[n][i]=getchar(); if(html[n][i]=='<') { j=0; while(html[n][++i]=getchar()) { if(html[n][i]=='/')continue; if(html[n][i]==' '||html[n][i]=='>')break; tag[j++]=html[n][i]; } tag[j]='\0'; if(flag==1) { strcpy(beginTag,tag); flag=0; } else if(!strcmp(tag,beginTag)) { html[n][++i]='\0'; return; } } i++; } } void getMapping(int n,int m) { int i,j; char mp[100]; cin>>mp; for(i=0; mp[i]!='-'; i++) mapping[n][m][0][i]=mp[i]; mapping[n][m][0][i]='\0'; for(j=0,i++; i')break; tag[j++]=html[n][i]; } tag[j]='\0'; } int getId(int n,int i,char id[]) { int j; id[0]='\0'; char tmp[M]; while(html[n][i]==' ') { j=0; while(html[n][++i]!='=') tmp[j++]=html[n][i]; tmp[j]='\0'; if(!strcmp(tmp,"id")) { i++; j=0; while(html[n][++i]!='"') id[j++]=html[n][i]; id[j]='\0'; } else { i++; while(html[n][++i]!='"'); } i++; } return i; } void store(int n,int i,int j,char tag[]) { stored[j][0]='\0'; int k,y=0,flag=0,len=strlen(tag); for(i++;; i++) { k=0; if(html[n][i]=='<') for(; k { if(j!=mapNum[n]) { strcpy(sta1[++top],tag); flag++; sta2[top]=0; for(j=0; j