![:(](./images/smilies/icon_frown.gif)
HELP PLEASE
![:)](./images/smilies/icon_smile.gif)
Code: Select all
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define OUTPUT freopen("myfile.txt","w",stdout);
#define INPUT freopen("input.txt","r",stdin);
int main()
{
int G_num[105],D_num[105],M_num[105],S_num[105],temp_num;
int g,d,m,s;
int form_d,form_m,form_s;
char G_name[105][30],D_name[105][30],M_name[105][30],S_name[105][30],temp_name[30],pos[5];
int G_age[105],D_age[105],M_age[105],S_age[105],temp_age;
int i,j,len,tp=1,p;
int team[11][3],max,captain,big,serial[11];
char team_name[11][30],position[6]="GGDMS";
char inp[20005];
while(gets(inp))
{
if(!strcmp(inp,"0"))
break;
g=0;
d=0;
m=0;
s=0;
len=strlen(inp);
temp_num=0;
for(i=0;i<len;i++)
{
if(inp[i]==' ')
{
i++;
break;
}
temp_num=temp_num*10+(inp[i]-'0');
}
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
j=0;
for(;i<len;i++)
{
if(inp[i]==' ')
{
i++;
break;
}
temp_name[j++]=inp[i];
}
temp_name[j]='\0';
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
pos[0]=inp[i];
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
temp_age=0;
j=0;
for(;i<len;i++)
{
if(inp[i]=='-')
{
temp_age-=j;
j=0;
}
else if(inp[i]==' ')
{
temp_age+=j;
j=0;
}
else
{
j=j*10+inp[i]-'0';
}
}
temp_age+=j;
if(pos[0]=='G')
{
G_num[g]=temp_num;
strcpy(G_name[g],temp_name);
G_age[g]=temp_age;
g++;
}
else if(pos[0]=='D')
{
D_num[d]=temp_num;
strcpy(D_name[d],temp_name);
D_age[d]=temp_age;
d++;
}
else if(pos[0]=='M')
{
M_num[m]=temp_num;
strcpy(M_name[m],temp_name);
M_age[m]=temp_age;
m++;
}
else if(pos[0]=='S')
{
S_num[s]=temp_num;
strcpy(S_name[s],temp_name);
S_age[s]=temp_age;
s++;
}
for(p=1;p<22;p++)
{
gets(inp);
len=strlen(inp);
temp_num=0;
for(i=0;i<len;i++)
{
if(inp[i]==' ')
{
i++;
break;
}
temp_num=temp_num*10+(inp[i]-'0');
}
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
j=0;
for(;i<len;i++)
{
if(inp[i]==' ')
{
i++;
break;
}
temp_name[j++]=inp[i];
}
temp_name[j]='\0';
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
pos[0]=inp[i];
/**Space remover */
while(1)
{
if(inp[i]==' ')
i++;
else
break;
}
temp_age=0;
j=0;
for(;i<len;i++)
{
if(inp[i]=='-')
{
temp_age-=j;
j=0;
}
else if(inp[i]==' ')
{
temp_age+=j;
j=0;
}
else
{
j=j*10+inp[i]-'0';
}
}
temp_age+=j;
if(pos[0]=='G')
{
G_num[g]=temp_num;
strcpy(G_name[g],temp_name);
G_age[g]=temp_age;
g++;
}
else if(pos[0]=='D')
{
D_num[d]=temp_num;
strcpy(D_name[d],temp_name);
D_age[d]=temp_age;
d++;
}
else if(pos[0]=='M')
{
M_num[m]=temp_num;
strcpy(M_name[m],temp_name);
M_age[m]=temp_age;
m++;
}
else if(pos[0]=='S')
{
S_num[s]=temp_num;
strcpy(S_name[s],temp_name);
S_age[s]=temp_age;
s++;
}
}
scanf("%d-%d-%d",&form_d,&form_m,&form_s);
gets(inp);
if(tp>1)
printf("\n");
tp++;
if(((form_d+form_m+form_s)!=10)||(form_d>d)||(form_m>m)||(form_s>s))
printf("IMPOSSIBLE TO ARRANGE\n");
else
{
big=0;
/** team selection G for 1 D for 2 M for 3 S for 4*/
/**G sort*/
{
int sort_bank[500]={0,};
for(i=0;i<g;i++)
{
sort_bank[G_num[i]]=i+1;
}
i=0;
for(j=0;j<1;j++)
{
for(;i<500;i++)
{
if(sort_bank[i]!=0)
{
team[big][0]=1; /**TYPE*/
team[big][1]=G_num[sort_bank[i]-1]; /**NUMBER*/
team[big][2]=G_age[sort_bank[i]-1]; /**AGE*/
strcpy(team_name[big],G_name[sort_bank[i]-1]); /**NAME*/
big++;
i++;
break;
}
}
}
}
/**D sort*/
{
int sort_bank[500]={0,};
for(i=0;i<d;i++)
{
sort_bank[D_num[i]]=i+1;
}
i=0;
for(j=0;j<form_d;j++)
{
for(;i<500;i++)
{
if(sort_bank[i]!=0)
{
team[big][0]=2; /**TYPE*/
team[big][1]=D_num[sort_bank[i]-1]; /**NUMBER*/
team[big][2]=D_age[sort_bank[i]-1]; /**AGE*/
strcpy(team_name[big],D_name[sort_bank[i]-1]); /**NAME*/
big++;
i++;
break;
}
}
}
}
/**M sort*/
{
int sort_bank[500]={0,};
for(i=0;i<m;i++)
{
sort_bank[M_num[i]]=i+1;
}
i=0;
for(j=0;j<form_m;j++)
{
for(;i<500;i++)
{
if(sort_bank[i]!=0)
{
team[big][0]=3; /**TYPE*/
team[big][1]=M_num[sort_bank[i]-1]; /**NUMBER*/
team[big][2]=M_age[sort_bank[i]-1]; /**AGE*/
strcpy(team_name[big],M_name[sort_bank[i]-1]); /**NAME*/
big++;
i++;
break;
}
}
}
}
/**S sort*/
{
int sort_bank[500]={0,};
for(i=0;i<s;i++)
{
sort_bank[S_num[i]]=i+1;
}
i=0;
for(j=0;j<form_s;j++)
{
for(;i<500;i++)
{
if(sort_bank[i]!=0)
{
team[big][0]=4; /**TYPE*/
team[big][1]=S_num[sort_bank[i]-1]; /**NUMBER*/
team[big][2]=S_age[sort_bank[i]-1]; /**AGE*/
strcpy(team_name[big],S_name[sort_bank[i]-1]); /**NAME*/
big++;
i++;
break;
}
}
}
}
/**Find Captain*/
max=0;
big=0;
for(i=0;i<11;i++)
{
if(team[i][2]>max)
{
max=team[i][2];
big=team[i][1];
captain=i;
}
else if((team[i][2]==max)&&(big<team[i][1]))
{
max=team[i][2];
big=team[i][1];
captain=i;
}
}
printf("%d %s %c\n",team[captain][1],team_name[captain],position[team[captain][0]]);
for(i=0;i<11;i++)
{
if(i==captain)
continue;
else
printf("%d %s %c\n",team[i][1],team_name[i],position[team[i][0]]);
}
}
}
return 0;
}