| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
PE的进//注意下面isBlankLine函数的调用
#include <iostream>
#include <map>
using namespace std;
#define MAXRD 1000
#define MAXRDL 250
map<int,int> M;
struct rd
{
rd()
{
con=new char[MAXRDL];
}
int num;
char *con;
};
rd R[MAXRD];
int rdn,nCount;
int cmp(const void *a,const void*b)
{
return M[static_cast<const rd*>(a)->num]-M[static_cast<const rd*>(b)->num];
}
int convert(char *str,bool bprint)
{
int j,i,k,sum,bei;
int len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]=='[')
{
sum=0;
bei=1;
j=i+1;
while(str[j]!=']')
j++;
for(k=j-1;k>=i+1;k--)
{
sum+=(str[k]-'0')*bei;
bei=bei*10;
}
// printf("DEGUG:%d",sum);
if(bprint)
if(M.find(sum)==M.end())
{
M[sum]=nCount++;
}
if(bprint)
printf("[%d]",M[sum]);
else
return sum;
i=j;
}
else
printf("%c",str[i]);
}
return -1;
}
bool isBlankLine(char *str)
{
int len=strlen(str);
int i;
for(i=0;i<len;i++)
if(str[i]!=' ')
return false;
return true;
}
int main()
{
freopen("c:/aaa.txt","r",stdin);
// freopen("c:/2.txt","w",stdout);
M.clear();
int i,j;
rdn=-1;
nCount=1;
char *str=new char[100];
bool brd,first=true;
while(gets(str)!=NULL)
{
while(isBlankLine(str)&&gets(str)!=NULL)
;
if(isBlankLine(str))
break;
if(str[0]=='[')
{
brd=true;
rdn++;
R[rdn].num=convert(str,false);
strcpy(R[rdn].con,str);
while(gets(str)!=NULL&&!isBlankLine(str))
{
R[rdn].con=strcat(R[rdn].con,"\n");
R[rdn].con=strcat(R[rdn].con,str);
}
}
else
{
if(!first)
printf("\n");
first=false;
brd=false;
convert(str,true);
printf("\n");
while(gets(str)!=NULL&&!isBlankLine(str))
{
convert(str,true);
printf("\n");
}
// printf("\n");
}
str[0]='\0';
}
qsort(R,rdn+1,sizeof(R[0]),cmp);
for(i=0;i<=rdn;i++)
{
printf("\n");
j=0;
while(R[i].con[j]!=']')
j++;
printf("[%d]",M[R[i].num]);
printf("%s",R[i].con+j+1);
printf("\n");
}
// printf("\n");
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator