semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char a[100]={0},b[100]={0},c[100][100]={0};
	int i=0,j=0,k=0,l=0;
	gets(a);
	for(i=0;a[i]!='\0';i++)
	{
		for(j=0;a[i]!='\0'&&a[i]!=' ';i++)
		{
			c[k][j]=a[i];
			j++;
		}
		if(k!=0)
			c[k][j]=' ';
		k++;
	}
	for(i=k-1;i>=0;i--)
		strcat(b,c[i]);
	printf("%s\n",b);
}
/*
 *???: word_reverse.cpp
 *??: ???
 *????: 2012-11-08
 *??: ????
 */



int main()
{
	char str[2][120];
	int k,we; //????????????????
	cin.getline(str[0],sizeof(str[0]));

	we=strlen(str[0]);
	k=0;
	for (int i=we-1;i>=0;i--){
		if (i==0){
			if (k) str[1][k++]=' ';
			for (int j=0;j<we;j++)
				str[1][k++]=str[0][j];
			str[1][k]=0;
		}
		else if (str[0][i]==' '){
			if (k) str[1][k++]=' ';
			for (int j=i+1;j<we;j++)
				str[1][k++]=str[0][j];
			str[1][k]=0;
			we=i;
		}
	}
	cout << str[1] << endl;
	return 0;
}
void main()
{
	int i=0,j=0,k;
	char a[100][100],b[101];
	gets(b);
	for(;b[j]!=0;)
		if(b[j]!=' ')
		{
			for(k=0;b[j]!=' '&&b[j]!=0;j++,k++)
				a[i][k]=b[j];
			a[i][k]=0;
			i++;
		}
		else
			j++;
	printf("%s",a[i-1]);
	for(j=i-2;j>=0;j--)
		printf(" %s",a[j]);
}
void main()
{
	int i,n,j,k=0,l;
	char a[200],b[20][20];
	gets(a);
	n=strlen(a);
	for(i=n-1,j=0;i>=0;i--)
	{
		if(a[i]!=' '){b[j][k]=a[i];k++;}
		else
		{
			for(l=k-1;l>=0;l--)printf("%c",b[j][l]);
			printf(" ");
			k=0;
			j=j+1;
		}
	}
	for(l=k-1;l>=0;l--)printf("%c",b[j][l]);
}
/*
 * 11.1613.cpp
 *
 *  Created on: 2012-11-14
 *      Author: ???
 */
int main()
{
	char x[10000],a[1000][1000],temp[1000];
	cin.getline(x,10000);//????
	int i,lenth,j=0,k=0;
	lenth=strlen(x);
	for(i=0;i<lenth;i++)//????
	{
		if(x[i]!=' ')
		{
			a[j][k]=x[i];
			k++;
		}
		if(x[i]==' ')
		{
			a[j][k]='\0';
			j++;
			k=0;
		}
	}
for(i=0,k=j;k>i;i++,k--)//????
{
	strcpy(temp,a[i]);
	strcpy(a[i],a[k]);
	strcpy(a[k],temp);

}
cout <<a[0];//??
for(i=1;i<=j;i++)
	cout<<" " << a[i];
}
int main()
{
	char a[20][50],c;
	int i=0;
	do{scanf("%s",a[i]);scanf("%c",&c);i++;}while(c!='\n');
	printf("%s",a[i-1]);
	i=i-2;
	for(;i>=0;i--)printf(" %s",a[i]);
	printf("\n");
}
void main()
{
	char str[101];gets(str);
	int n;n=strlen(str); 
	char *p1,*p2,*head,*p3;
	head=str;p1=p2=p3=str+n;
	for(;p1>=head;p1--)
	{
		if(*p1==' ')
		{
			p3=p1+1;printf("%s",*p2=='\0'?"":" ");
			for(;p3<p2;p3++)	
		    	printf("%c",*p3);
		p2=p1;
		}
		else if(p1==head)
		{
			printf("%s",*p2=='\0'?"":" ");
			for(p3=p1;p3<p2;p3++)
			    printf("%c",*p3);
		}
		
	}
}
void main()
{
	char c,a[400],b[40][20];
	int i=0,j,k=0,t=0;
	c=getchar();
	while(c!='\n')
	{
		a[i]=c;
		i++;
		c=getchar();
	}
	a[i]=' ';
	for(j=0;j<=i;j++)
	{
		b[k][t]=a[j];
		t++;
		if(a[j]==' ')
		{
			b[k][t-1]='\0';
			k++;
			t=0;
		}
	}
	for(i=k-1;i>0;i--)
		printf("%s ",b[i]);
	printf("%s\n",b[0]);
}
void main()
{
	char s[50][20];
	int i,j,n;
	scanf("%s",s[0]);
	for (i=1,n=0;getchar()!='\n';i++)
	{
		scanf("%s",s[i]);
		n++;
	}
    for (j=n;j>=0;j--)
	{
		printf("%s",s[j]);
		if (j>0)
			printf(" ");
}
}
int main()
{
	char str[100];
	gets(str);
	int i,j,k;
	char a[100][100];
	j=1;k=0;
	for(i=0;i<strlen(str);i++)
	{
		a[j][k]=str[i];
		k=k+1;
		if(str[i+1]==' ')
		{
			a[j][k]='\0';
			j=j+1;
			k=0;
                           i++;
		}
		if (str[i+1]=='\0') a[j][k]='\0';
	}
	for(i=j;i>=1;i--)
	{
		printf("%s",a[i]);
		if(i!=1) printf(" ");
	}
return 0;
}
int main()
{
    int i=0,j=0;
    char s[100][100];
    while (scanf("%s",s[i])!=-1)
    {
        i++;
    }
    for (j=i-1;j>=1;j--)
    {
        printf("%s ",s[j]);
    }
    printf("%s",s[0]);

    return 0;
}
int main()
{
	char ch[200];
	char*a[30];
	int i,k;

	for(i=0;i<30;i++)
	{
		a[i]=NULL;
	}
	cin.getline(ch,110);
	a[0]=strtok(ch," ");
	i=1;
	while((a[i]=strtok(NULL," "))!=NULL)
	{
		i++;
	}
	for(k=i-1;k>0;k--)
	{
		cout<<a[k]<<' ';
	}
	cout<<a[0];
	return 0;
}
int main(){
    char scentence[10000];
    int numOfVo=0;
    char voca[101][51];
    char change;

    int lenofc[101]={0};
    int holo;

    double exchange,exch;



    char newscentence[10000];
    int length;
    
    cin.getline( scentence, 10000 );
    length=strlen(scentence);
    for(int i=0;i<strlen(scentence);i++){
          newscentence[i]=scentence[length-i-1];
    }
    for (int i=0;i<strlen(scentence) ; i++) {
        if (newscentence[i]==' ') {
            continue;
        }
        numOfVo=numOfVo+1;
        for (int j=i; j<strlen(scentence); j++) {
            if (newscentence[j]==' ') {
                break;
            }
            voca[numOfVo][j-i+1]=newscentence[j];
            lenofc[numOfVo]=lenofc[numOfVo]+1;
        }
        i=i+lenofc[numOfVo];
    }
    for (int i=1;i<=numOfVo;i++){
        for(int j=1;j<=(lenofc[i]/2);j++){
                change=voca[i][j];
                voca[i][j]=voca[i][lenofc[i]+1-j];
                voca[i][lenofc[i]+1-j]=change;
        }
        
    }
    for (int j=1;j<=lenofc[1];j++){
            cout<<voca[1][j];
        }
    for (int i=2;i<=numOfVo;i++){
        cout<<" ";
        for (int j=1;j<=lenofc[i];j++){
            cout<<voca[i][j];
        }

    }    
    
    

    

    return 0;
    
}
void main()
{
	char str[101];
	gets(str);
	int i,j,k,m=0;
	char s[20][100];
	for (i=0;str[i]!='\0';)
	{
		for (j=0;str[i+j]!=' ';)
		{s[m][j]=str[i+j];j++;}
	    s[m][j]='\0';
	    i=i+j+1;
	    j=0;
		m++;}
   k=m-2;
   for (k=m-2;k>0;k--)
	   printf("%s ",s[k]);
   printf("%s\n",s[0]);
}
void main()
{
	int i,j=1,s, n=0,m,word=1,k=0,lenth;
	int x=0,t=0;
	char string[100],a[100][100];
	gets(string);
	lenth=strlen(string);
	for(t=0;t<lenth;t++)
	{
		if(string[t]==' ')
		{x=1;break;}

	}
	if(x==0)
		puts(string);
	else if(x==1)
	{
	for(i=0;i<100;i++)
	{
		if(string[i]!=' ')
		{
			a[0][i]=string[i];
		}
		else
		{
			a[0][i]='\0';break;
		}
	}
	
	for(s=i+1;s<100;s++)
	{
		if(string[s]==' ' && word==1)
		{
			a[j][k]='\0';
			j++;
			word=0;
			k=0;
		}
		if(string[s]!=' ')
		{
			word=1;
			a[j][k]=string[s];
			k++;
		}
	}

	for(m=j;m>0;m--)
	{
		printf("%s ",a[m] );
	}
	printf("%s",a[0]);
	}
}
main()
{
	char a[101];
	int i,j,len,begin,end;
	gets(a);
	len=strlen(a);
	end=len-1;
	for(i=end;i>=0;--i)
	{
		if(a[i]==' '&&i!=0)
		{
			begin=i+1;
			break;
		}
		 begin=0;
	}
	for(j=begin;j<=end;++j)
		printf("%c",a[j]);
	while(begin!=0)
	{
		end=begin-2;
		for(i=end;i>=0;--i)
		{
			if(a[i]==' '&&i!=0)
			{
				begin=i+1;
				break;
			}
			begin=0;
		}
		printf(" ");
		for(j=begin;j<=end;++j)
			printf("%c",a[j]);
	}
}
int main()
{
	char a[100];
	cin.getline(a,100,'\n');//?????
	int l,i,j;
	l=strlen(a);
	for(i=strlen(a)-1;i>=0;i--)//???????
	{	
		if(a[i]==' ')
		{
			for(j=i+1;j<l;j++)
				cout<<a[j];
			cout<<' ';
			l=i;
		}
	}
	for(i=0;i<l;i++)
		cout<<a[i];
	return 0;
}
void main()
{
  char s[100],rs[100][100],is[100],sp[2]={' '};
  int i,j=0,k=0;
  gets(s);
  strcpy(is,s);
  for(i=0;s[i]!='\0';i++)
    {
      if(s[i]!=' ')
        {
          rs[j][k]=s[i];
          k++;
        }
      else if(s[i])
        {
          j++;
          k=0;
        }
    }
  strcpy(is,rs[j]);
  if(j>1)
{
  strcat(is,sp);
  for(i=j-1;i>=1;i--)
    {
      strcpy(is,strcat(is,rs[i]));
      strcpy(is,strcat(is,sp));
    }
  strcat(is,rs[0]);
}
  puts(is);
}
int main()
{
	char a[100][100]={0};
	int i=0,k=0,x=0,y=0;
	for(i=0;;i++)
	{
		for(k=0;a;k++)
		{
			a[i][k]=getchar();
			if(a[i][k]==' '||a[i][k]=='\n')
				break;
		}
		if(a[i][k]=='\n')
			break;
	}

	for(x=0;x<=i;x++)
	{
		for(y=0;x>=0;y++)
		{
			if(a[i-x][y]!=32&&a[i-x][y]!='\n')
			cout<<a[i-x][y];
			else 
				break;
		}
		if(x<i)
		cout<<" ";
	}
	return 0;
}
void main()
{
	int n=0,i=0,k=0;
	char c[101]={0},w[15][15]={0};
	gets(c);
	while(c[k]!='\0')
	{
		if((c[k]>='a'&&c[k]<='z')||(c[k]>='A'&&c[k]<='Z'))w[n][i++]=c[k];
		else {n++;i=0;}
		k++;
	}
	w[n][i]='\0';
	for(i=n;i>0;i--)
		printf("%s ",w[i]);
	printf("%s\n",w[0]);
}
int main()
{
	char word[100][100]={0};
	int i=0;
	int j=0;
	char x;
	x=getchar();
	do
	{
		if(x==' ') i++,j=0;
	    else word[i][j]=x,j++;
		x=getchar();
	}while(x!='\n');
	for(int k = i ; k >= 0 ; k--)
	{
		if(k==0)cout<<word[k]<<endl;
		else cout<<word[k]<<" ";
	}
	return 0;
}
void main()
{
	char string[101],str[50][100];
	char c;
	int n=0,i,j,t;
	gets(string);
	t=strlen(string);
	for(i=0;i<50;i++)
	{
		for(j=0;(c=string[j+n])!=' ';j++)
		{
		str[i][j]=string[j+n];
		}
		n=n+j+1;
		str[i][j+1]='\0';
		if(n>t)break;
	}
	for(;i!=0;i--)
	{
		for(j=0;(c=str[i][j])!='\0';j++)
		printf("%c",str[i][j]);
		printf(" ");
	}
	for(j=0;(c=str[0][j])!='\0';j++)
		printf("%c",str[0][j]);
}
void main()
{
    int m=0,i=0,j=0;
    char a[100][10],b;
    while(i<100)
    {scanf("%s",a[i++]);
    scanf("%c",&b);
    m++;
    if(b=='\n')
                        break;
    }
    for(i=1;i<=m-1;i++)
    {
    j=m-i;
    printf("%s ",a[j]);
    }
    printf("%s",a[0]);
    
    

  return 0;
}
/*
 * shuzu2.13.cpp
 *
 *  Created on: 2012-11-20
 *      Author: wangrunhui
 */


int main()
{
	char str[105][105];
	int i,j;
	for ( i = 0; ;i ++ )
	{
		str[i][0] = 0;
		cin >> str[i];
		if ( str[i][0] == 0)
			break;
	}
	cout << str[i - 1] ;
	for ( j = i - 2; j >= 0; j --)
		cout << ' ' << str[j];
	return 0;
}
int main()
{ 
	char a[100][50];
	int i=1,j;
	while(cin>>a[i])
		i++;
	for(j=i-1;j>=1;j--)
	{
		if(j==1){cout << a[j];break;} 
		cout << a[j] <<" ";
	}
	return 0;
}
int main()
{
	int i=0,j=0,k=0;
	char c[101],str[20][20]={'\0'};
	cin.getline(c,101);
	while(c[i]!='\0')
	{
		if(c[i]!=' ')
		{
			str[j][k]=c[i];
			k++;
		}
		else
		{
			j++;k=0;
		}
		i++;
	}
	
	for(k=j;k>=1;k--)
		cout<<str[k]<<" ";
	cout<<str[0];
	return 0;
}
void main()
{
	char a[1000],*p,*q;int n;
	gets(a);n=strlen(a);
	for(p=a+n-1;p>=a;p--)
	{
if(*p==' '&&p!=a)
{
	for(q=p+1;*q!=' '&&q!=a+n;q++)
printf("%c",*q);
	printf(" ");
}
if(p==a)
for(q=a;*q!=' '&&*q!='\0';q++)
printf("%c",*q);
	}
}
int main(void)
{
	char a[100],*p,*ipa[100];
	int i,j,n,k=1;
	gets(a);
	n=strlen(a);
	p=a;
	ipa[0]=&a[0];
	for(i=0;i<n;i++,p++)
		if(*p==' ') 
		{ipa[k]=p;k++;}
	ipa[k]=&a[n];
	for(;k>1;k--)
	{
	   for(i=0,p=a;i<n;i++,p++)
		if(ipa[k]>p&&p>ipa[k-1])
			printf("%c",*p);
		printf(" ");
	}
	for(i=0,p=a;i<n;i++,p++)
		if(ipa[0]<=p&&p<ipa[1])
			printf("%c",*p);
}
//============================================================================
// Name        : array0213.cpp
// Author      : 1300012911
// Version     : 20131113,Wed,10th week
// Copyright   :
// Description : ????
//============================================================================


int main() {
	int i = 0;
	int len = 0;
	int l = -1;
	int num = 0;//????
	int front = 0,back = 0;//???????????????
	char s[101];//?????
	char a[100][100];//????
	//??????11???
	cin.getline(s,101);
	len = strlen(s);
	front = 0;
	while (s[front] == ' ') front++;
	back = len-1;
	while (s[back] == ' ') back--;
	for (i = front;i <= back;i++)
		if (s[i] != ' ')
		{
			l++;
			a[num][l] = s[i];
		}
		else if (s[i-1] != ' ')
		{
			l++;
			a[num][l] = '\0';
			num++;
			l = -1;
		}
	l++;
	a[num][l] = '\0';
	num++;
	//????
	for (i = num-1;i >= 0;i--)
		if (i == 0) cout << a[i];
		else cout << a[i] << ' ';
	return 0;
}
void main()
{
	int i,j,t,n=0,m=0,k=0;char a[100],b[100][100];
	gets(a);
	t=strlen(a);
	for(i=0;i<t;i++)
	{
		if((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122))
		{
			j=k;
			b[j][n]=a[i];
			n++;
			m=1;
		}
		else if(m==1)
		{
			k++;
			b[j][n]='\0';
			n=0;
			m=0; 
		}
	}
	b[j][n]=0;
    printf("%s",b[j]);
	for(i=j-1;i>=0;i--)
    printf(" %s",b[i]);
}
/*
 * 1.cpp
 *
 *  Created on: 2012-11-9
 *      Author: 99003
 */

int main(){
	int i,j,k;
	char a[10000];
	char word[1000][100];
	int wordl[1000];
	cin.getline(a,10000);
	int length,wordn;
	wordn=1;
	length=strlen(a);
	wordl[1]=0;
	for(i=0;i<length;i++)//?????????
	{
		if(a[i]!=' ')
		{
			word[wordn][wordl[wordn]+1]=a[i];
			wordl[wordn]=wordl[wordn]+1;
		}
		if(a[i]==' ')
		{
			wordn=wordn+1;
		}
	}
	for(i=wordn;i>=1;i--)//????
	{
		for(j=1;j<=wordl[i];j++) cout<<word[i][j];
		  if(i!=1)   cout<<" ";
	}




	return 0;


}
int main()
{
    char a[100],b[100][100];
    int n,i,j;
    n=0;
    while (scanf ("%s",&a)!=EOF)
    {
          j=strlen(a);
          for (i=0;i<j;i++)
          b[n][i]=a[i];
          n++;
    }
    for (i=0;i<n-1;i++)
    printf("%s ",b[n-i-1]);
    printf("%s",b[0]);
    return 0;
}
void main()
{ char b[100][20]={0};
char a[100]={0};
   int i,n,j,t;
gets(a);
n=0;
for(i=0;a[i]!='\0';i++)
if(a[i]==' ')n=n+1;

n=n+1;
t=0;

for(i=0;i<n;i++)
{
 for(j=0;j<100;j++)
 {if(a[t]!=' ') {b[i][j]=a[t];t=t+1;}
 if(a[t]==' ')break;
 }
 t=t+1;
}
printf("%s",b[n]);
for(i=n-1;i>0;i=i-1)
printf("%s ",b[i]);



printf("%s",b[0]);

}
main()
{
	char str[1000];
	gets(str);
	int i=0;int j=0;char morning;
	int k=strlen(str); int dream=k-1;
	while(i<=dream)
	{
	 morning=str[i];str[i]=str[dream];str[dream]=morning;i++;dream--;
	
	}
	j=0;int m;int y;
	while(j<=k-1)
	{
        m=j;
		while(str[j]!=' '&&j<=k-1) j++;y=j-1;
		while(m<=y){morning=str[m];
		    	str[m]=str[y];
		str[y]=morning;
		m++;y--;}
        j++;
	}
	for(i=0;i<=k-1;i++)cout<<str[i];
}
void main()
{
	char a[101][101],b[101];
	int i=1,j=0,k=0,l1,l2;
	gets(b);
	l1=strlen(b);
	for(j=0;j<l1;j++)
	{
		if(b[j]==' ')
		{
			a[i][k]='\0';
			i++;
			k=0;
		}
		else
		{
			a[i][k]=b[j];
			k++;
		}
	}
	a[i][k]='\0';
	for(j=i;j>=1;j--)
	{
		l2=strlen(a[j]);
		for(k=0;k<l2;k++)
			printf("%c",a[j][k]);
		if(j!=1)
			printf(" ");
		else
			printf("\n");
	}
}
void main()
{
 char a[10000],b[1000][1000];
 int c[1000];
 int m,j=1,i=0,k=0,x,y;
 gets(a);
 for(i=0;i<strlen(a);i++)
    {
      if(a[i]==' ')j++;
    }
 i=0;
 for(m=0;m<j;m++)
    for(;i<strlen(a);i++)
    {
      if(a[i]!=' ')
        {
          b[m][k]=a[i];
          k++;
        }
        c[m]=k;
      if(a[i]==' ')
        {
          
          k=0;
          i=i+1;
          break;
        }
    }
   
  for(m=j-1;m>0;m--)
  {
   
    for(x=0;x<c[m];x++)
    printf("%c",b[m][x]);
   printf(" ");
  }
  for(y=0;y<c[0];y++)
  printf("%c",b[0][y]);
}
int main()
{
	int i, j, k=0, m=1;
	char s;
	char a[100][20]={'\0'};
	for(i=0;;i++)
	{
		scanf("%s",a[i]);
		if(s=getchar()=='\n')break;

	}
	printf("%s",a[i]);
	for(j=i-1;j>=0;j--)
		printf(" %s",a[j]);
	return 0;
}
/* * dancidaopai.cpp
 *
 *  Created on: 2012-11-21
 *      Author: Lenovo
 */
int main(){
	char s[105],v[100][100],m[100];
	int i,j=0,k=0,p,num[100];
	cin.getline(s,100);
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]!=' ')
		{
			v[k][j]=s[i];
			j=j+1;
		}
		if(s[i]==' ')
		{
			num[k]=j;
			k=k+1;
			j=0;
		}

	}
	num[k]=j;
	for(i=0;i<=k/2;i++)
	{
		strcpy(m,v[i]);   p = num[i];
		strcpy(v[i],v[k-i]); num[i] = num[k-i];
		strcpy(v[k-i],m);   num[k-i] = p;
	}
	for(i=0;i<k;i++)
	{	for(j=0;j<num[i];j++)
		{
			cout<<v[i][j];
		}
	cout<<' ';
	}
	for(i=0;i<num[k];i++)
	{
		cout<<v[k][i];
	}
return 0;
}
int main()
{
	char str[100]; //??????
	int i,n=0,t,m=0; //??????
	gets(str); //?????
	n=strlen(str); //??????????
	for(i=n-1;i>=0;i=i-1) //?????????????????????
	{
		if(str[i]!=' ')
		{
			m=m+1;
		} //m????????
		else
		{
			for(t=i+1;t<i+1+m;t++)
				printf("%c",str[t]); //??????????
			m=0;
			printf(" "); //????????????
		}
	}
	for(t=i+1;t<i+1+m;t++)
		printf("%c",str[t]); //???????
	return 0;
}
//??????????I am a student??????student am a I????????????????WrongAnwser?????????????
int main()
{
	int inta[10],i=1,j,k=0,m=0;
	char str[100];
	cin.get(str,100);


	for(i=0;;i++)
	{
		if(str[i]==' '||str[i]=='\0')
		{
			inta[k]=i;
			k++;
			if(str[i]=='\0')
				{m=k-1;
			     break;}
		}
	}
     
	for(j=m;j>=1;j--){
		for(i=inta[j-1]+1;i<=inta[j]-1;i++)
		{cout<<str[i];}
		cout<<" ";}

	for(i=0;i<=inta[0]-1;i++)
		cout<<str[i];
	return 0;}
int main()
{
	char str[100],*p,*t,*s;
	int i,j,n;
	gets(str);
	n=strlen(str);
	for(p=str+n;p>=str;p--)
	{
		if((*p)==' ')
		{
			for(t=p+1;((*t)!=' ')&&((*t)!='\0');t++)
			{
			    printf("%c",*t);
			}
			printf(" ");
		}
			
	}
	for(s=str;((*s)!=' ')&&((*s)!='\0');s++)
		printf("%c",*s);
}
int main()
{
    char q;
    char a[101][101];
    int tot[101];
    int sum=1;
    int i,j;    
    scanf("%c",&q);    
    
    
    while (q!='\n')
           if (q==' ') {sum++;scanf("%c",&q);} else  
       {      
           tot[sum]++;               
           a[sum][tot[sum]]=q;
           scanf("%c",&q);        
       }
    for (i=sum;i>1;i--) 
        {
            for (j=1;j<=tot[i];j++)  printf("%c",a[i][j]);
            printf(" ");
        }
    for (j=1;j<=tot[1];j++)  printf("%c",a[i][j]);
 //   scanf("%c",&q);        
               
}
/*
 * 12.11.10d.cpp
 *  Created on: 2012-11-10
 *  Author: ???
 *  ???????
 */
int main(){
	int i,j,k;
	char a[100][100],b[10000];//b?????????a?????
	cin.getline(b,10000);//??????
	for(i=0,j=0,k=0;i<strlen(b);++i){//?????a
		if(b[i]==' '){//????
			++j;k=0;continue;//????????
		}
		else{//????
			a[j][k]=b[i];//???a
			++k;
		}
	}
	cout<<a[j];//?????????
	for(i=j-1;i>=0;--i){//??????????
		cout<<' '<<a[i];
	}
	return 0;
}
int main()
{
int i=0,j=0,k=0,a[101]={0},b[101]={0},l;
char s[101],str[101][101]={'\0'};
gets(s);
l=strlen(s);
while(i<=l)
{
    if(s[i]!=' '&&s[i]!='\0')
{
   str[k][j]=s[i];
   j++;
   i++;
}
else
if(s[i]==' ')
{
       str[k][j]='\0';
       j=0;
       while(i<l&&s[i]==' ')
   {
b[k]++;
i++;
   }
        k++;
}
else
{
str[k][j]='\0';
i++;
k++;
}
}
for(i=k-1;i>=0;i--)
{
   for(j=1;j<=b[i];j++)
   printf(" ");
   printf("%s",str[i]);
}
return 0;
}
char str[101][101];
int n=1;
int main(){
	while (cin>>str[n]) n++;
	for (n--;n>1;n--) cout<<str[n]<<' ';
	cout<<str[1];
	return 0;
}
void main()
{
	char a[80][20],b;
	int i,j;
	for(i=1;;i++)
	{
		scanf("%s",a[i]);
		b=getchar();
		if(b!=' ') break;
	}
	printf("%s",a[i]);
	for(j=i-1;j>=1;j--)
		printf(" %s",a[j]);
}
int main()
{
	int i,j,numword=1,l=0;//??,i?????j????????l?????????
	char words[100][100]={'\0'},aph[100]={'\0'};//???????????
	cin.getline(aph,100);

	for(i=0;;i++)
	{
		if(aph[i]=='\0')
			break;
		if(aph[i]==' ')
		{
			numword++;
			l=0;
		}
		else if(aph[i]!=' ')
		{
			words[numword][l]=aph[i];
			l++;
		}
	}
	for(j=numword;j>1;j--)
	{
		cout<<words[j]<<" ";
	}
	cout<<words[1];
	return 0;
}
int main ()
{
	char str[100][100], ch;
	int n=0, i;
	for (i=0; ; i++)
	{
		scanf ("%s", &str[i]);
		n++;
		if ((ch=getchar())=='\n') break;
	}
	for (i=n-1; i>=0; i--)
	{
		printf ("%s", str[i]);
		if (i>0) printf (" ");
		else break;
	}
	return 0;
}
void main()
{
 int i,j,k;
 char a[100][100],c[100];
 gets(c);
 for(j=0;j<100;j++)
	 for(i=0;i<100;i++)
		 a[j][i]='\0';
 for(i=0,j=0,k=0;c[k]!='\0';k++)
	{
	 if(c[k]!=' ')
	 {
	  a[i][j]=c[k];
	  j++;
	 }
	  if(c[k]==' ')
	  {
		if(i!=0)
	    a[i][j]=' ';
		i++;
		j=0;
	  }
	}
	if(i!=0)
	{
	printf("%s ",a[i]);
	for(i=i-1;i>=0;i--)
		printf("%s",a[i]);
	}
	else
	puts(c);
}
int main() {
	char str[100][100];

	int j, i, c;
	for (i = 0; i < 100; i++) {//?????
		for (j = 0; j < 100; j++)
			str[i][j] = 'x';

	}
	i = 0;
	cin >> str[i++];
	while ((c = getchar()) != '\n')//????
		cin >> str[i++];
	i--;
	while (i > 0)//??????
		cout << str[i--] << ' ';
	cout << str[0];
	return 0;
}
int main()
{
	char a[100],*p,*q,*w;
	int n,i,j,k=0; 
	gets(a);
	n=strlen(a);
	w=a;
	p=&a[n-1];
	q=p;
	for(i=0;i<n;i++)
	{
		if(*(q-i)!=' '&&(q-i)>=w) 
		{
			k++;
			p--;
		}
		else 
		{
			for(j=0;j<k;j++) 
				printf("%c",*(p+j+1));
			printf(" ");
			k=0;
			p--;
		}
        if((q-i)==w) 
           for(j=0;j<k;j++)
			   printf("%c",*(p+j+1));
	}
	return 0;
}
int main ()
{

	char temp[10000], word[100][20];
	cin.getline(temp,1000);
	int space[100] = {0}, i, num_of_space = 0, j,k, end;

	for (i = 0; temp[i] != '\0'; i++)
		;
	end = i;	//	?????	
	for (i = 0; i < end; i++) //??????
	{
		if (temp[i]==' ')
		{
			num_of_space ++ ;
			space[num_of_space] = i;

		}
	}

	if (num_of_space != 0)
	{
	for (i = 0; i < space[1]; i++)
	{
		word[0][i] = temp[i];
	}
	word[0][i] = '\0';

	for (i = 1; i < num_of_space; i++)
	{
		for (j = 0; space[i]+j+1 < space[i+1];j++)
		{
			word[i][j] = temp[space[i]+j+1];
		}
		word[i][j] = '\0';
	}

	for (i = space[num_of_space]+1 ; i < end; i++)
		word[num_of_space][i-space[num_of_space]-1] = temp[i];

	word[num_of_space][i-space[num_of_space]-1] = '\0';

	cout << word[num_of_space];

	for (i = num_of_space-1; i >=0; i--)
		cout << ' '<<word[i];

	cout << endl;
	}

	else
		cout << temp << endl;
        
    
    return 0;
}
void main()
{
	char a[100],b[50][20];
	gets(a);
	int len,i,j=0,t=0,m;
	len=strlen(a);
	for(i=0;i<len;i++)
	{
		if(a[i]!=' ') {b[t][j]=a[i];j++;m=t;}
		if(a[i]==' ') {b[t][j]='\0';t++;j=0;}
	}
	b[t][j]='\0';
	for(i=m;i>0;i--)
	printf("%s ",b[i]);printf("%s",b[0]);
}
void main()
{
	char s[101],c[101],len;
	int i,j=0,p;
	gets(s);
	len=strlen(s);
	for(i=len-1;i>=0;i--)
	if(*(s+i)==' ')
	{
		
		for(p=1;*(s+i+p)!=' '&&*(s+i+p)!='\0';p++)
			printf("%c",*(s+i+p));
		printf(" ");
	}
	for(p=0;*(s+p)!=' '&&*(s+p)!='\0';p++)
			printf("%c",*(s+p));
}
int main()
{
	char str[100];
	gets(str);
	int l,i,j,m;
	l=strlen(str);
	int a[50];
	j=0;
	for(i=0;i<l;i++)
	{
		if(str[i]==' ')
		{
			a[j]=i;
			j=j+1;
		}
	}
	if(j!=0)
	{
		for(i=(a[j-1]+1);i<l;i++)
	        printf("%c",str[i]);
	    printf(" ");
	    for(m=2;m<=j;m++)
		{ 
		    for(i=(a[j-m]+1);i<=(a[j-m+1]-1);i++)
			    printf("%c",str[i]);
		    printf(" ");
		}
	    for(i=0;i<a[0];i++)
		    printf("%c",str[i]);
	}
	else
		printf("%s",str);
return 0;
}
int main()
{
	char c[101];
	int i=1,z;
	while(true)
	{
		c[i]=getchar();
		if(c[i]=='\n')break;
		i=i+1;
	}
	int m,n;
	n=i-1;
	for(m=i-2;m>=1;m--)
	{
		if(c[m]==' ')
		{
			for(z=m+1;z<=n;z++)cout<<c[z];
			cout<<" ";
			n=m-1;
		}
		else if(m==1)
		{
			for(z=m;z<=n;z++)cout<<c[z];

		}
		
	}


	return 0;
}
main()
{
	char a[101],b[101];
	int i,n,j=0;
	gets(a);
	n=strlen(a);
	for(i=n-1;i>=0;i--)
	{
		if(a[i]!=' ')
		{
			b[j]=a[i];
			j++;
		}
		else
		{
			for(j-=1;j>=0;j--)
			printf("%c",b[j]);
			j=0;
			putchar(' ');
		}
	}
	for(i=0;;i++)
	{
		if(a[i]==' '||i==n)break;
		else putchar(a[i]);
	}
	putchar('\n');


	
}
void main()
{
	char a[100][10]={'\0'},c;
	int i,j;
	i=0;j=0;
	c='A';
	while(c!='\n')
	{
		scanf("%c",&c);
		if(c!=' '&&c!='\n')
		{
			a[i][j]=c;
			j=j+1;
		}
		else if(c==' ')
		{
			i=i+1;
			j=0;
		}
	}
	for(j=i;j>0;j=j-1)
	{
		printf("%s ",a[j]);
	}
	printf("%s",a[0]);
}
char s[110];
void operate(){
	int pre = strlen(s);
	int len = pre;
	for(int i=len-1;i>=0;i--){
		//??????????? 
		if(s[i]==' '){
			for(int j=i+1;j<pre;j++){
				cout<<s[j];
				}
			cout<<" ";
			pre = i;
			}
		}
	for(int j=0;j<pre;j++){
		cout<<s[j];
		}
	return;
	}
int main(){
	cin.getline(s,110);
	operate();
	return 0;
	}
void main()
{
	int i=0;
	char str[100][100];
	char (*p)[100];
	p=str;
	while (scanf("%s",p+i)!=EOF)//EOF?????
		i++;
	i--;//??????????,?????
		for(;i>0;i--)
		printf("%s ",p+i);
	printf("%s",p);
}
void main()
{
	char a[100]={0};
	int n,i,j,k,p,m=0;
	gets(a);
	n=strlen(a);

	k=n-1;
	for(p=0;p<n;p++)
		if(a[p]==' ')
			m=m+1;

  if(m!=0)
  {
	for(i=(n-1);i>=0;i--)
	{
		if(a[i]==' ')
		{
			for(j=(i+1);j<=k;j++)
				printf("%c",a[j]);
			printf("%c",a[i]);
                
			k=i-1;
		}
		
	}
	for(i=0;i<n;i++)
		if(a[i]==' ')
		{
			for(j=0;j<i;j++)
				printf("%c",a[j]);
			break;
		}
  }
  else 
	  puts(a);
}
int main()
{
	char c,ch[100][100]={'\0'};//????????????????????
	int i=0,j=0;
	cin>>c;
	while(c!='\n')
	{
		if(c==' ')//???????????
		{
			i++;
			j=0;
			c=cin.get();
		}
		ch[i][j]=c;
		j++;
		c=cin.get();
	}
	for(;i>=1;i--)//??????????
	{
		j=0;
		while(ch[i][j]!='\0')
		{
			cout<<ch[i][j];
			j++;
		}
		cout<<" ";
	}
	j=0;
	while(ch[0][j]!='\0')//????????????????????????
	{
		cout<<ch[0][j];
		j++;
	}
	return 0;
}
void main()
{
    char ch1[100],ch2[100];
    
    unsigned int i,j,s,k=0,chang;
	gets(ch1);
    s=strlen(ch1);
    for(i=0;i<100;i++)
{  
    ch2[i]='\0';
}
	
for(i=0;i<s;i++)
	{
		if (ch1[i]==' ') 
		{
		chang=i-k;
		 for (j=0;j<chang;j++)
		 {  ch2[s-chang-k+j]=ch1[k+j];
		 if (j==chang-1) ch2[s-chang-k-1]=' ';}
		k=i+1;
		}
		
	}
         chang=i-k;
		 for (j=0;j<chang;j++)
		   ch2[s-chang-k+j]=ch1[k+j];
		
    printf("%s",ch2);
}
void main()
{
	char str[1000];
	int i,j=1,n,a[20],k;
	gets(str);
	n=strlen(str);
	for(i=n-1;i>=0;i--)
		if(str[i]==' ')
		{a[j]=i;
		j++;
		}
		a[0]=n;
		a[j]=-1;k=j;
		for(i=0;i<k;i++)
		{for(j=a[i+1]+1;j<a[i];j++)
				printf("%c",str[j]);
			if(i!=k-1)
				printf(" ");
		}
}