Thank you 2 10 points Assuming there is an offline game once
Solution
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int parse_input( char inp[200], char name[10] ){
int i =0;
for(; i < strlen(inp); i++ ){
if( inp[i] == \':\' ){
break;
}
name[i] = inp[i];
}
name[i] = \'\\0\';
i++;
int score = 0;
for(; i < strlen(inp); i++ ){
score*= 10;
score = score + (inp[i]-\'0\');
};
return score;
}
int isMatch( char a[], char b[] ){
if( strlen(a) == strlen(b) ){
int i =0 ;
for(; i < strlen(a); i++){
if( a[i] != b[i] ){ return 0;}
}
return 1;
}
return 0;
}
void cpyCharArray( char copyInto[], char copyWhat[] ){
int i = 0;
for(; i < strlen(copyWhat); i++){
copyInto[i] = copyWhat[i];
}
copyInto[i] = \'\\0\';
return;
}
int cmpFxn( const void* aa, const void* bb ){
char* a = (char*)(aa);
char* b = (char*)(bb);
int l2 = strlen(b);
int min = strlen(a);
if( l2 < min ){ min = l2; }
int i = 0;
for(; i < min; i++){
if( a[i] < b[i] ){ return 0; }
if( a[i] > b[i] ){ return 1; }
}
if( l2 > min ){ return 0; }
return 1;
}
int intToStr( int input, char out[] ){
//end with \\0
char temp[100];
int i = 0;
while(input != 0 ){
temp[i++] = (input%10 + \'0\') ;
input = input/10;
}
i--;
int j = 0;
for(; i>= 0; i-- ){
out[j++] = temp[i];
}
out[j] = \'\\0\';
}
int main(){
char Orignames[100][50];
char names[100][50];
int totalPlayers = 0;
char inp[200];
while( scanf(\"%s\", inp ) != EOF ){
char name[10];
int score = parse_input( inp , name );
int i = 0;
char tempo[100];
intToStr( score, tempo );
for(; i < totalPlayers; i++){
if( isMatch(name, Orignames[i] ) ){
int len = strlen(names[i]);
names[i][ len ] = \':\';
names[i][ len+1 ] = \'\\0\';
cpyCharArray( names[i] + len+1 , tempo);
break;
}
}
if( i == totalPlayers ){
cpyCharArray( names[ totalPlayers ] , name );
cpyCharArray( Orignames[ totalPlayers ] , name );
int len = strlen(names[i]);
names[i][ len ] = \':\';
names[i][ len+1 ] = \'\\0\';
cpyCharArray( names[i] + len+1 , tempo);
totalPlayers++;
}
}
qsort( names, totalPlayers, 50 , cmpFxn );
int i = 0;
for(; i < totalPlayers; i++){
printf(\"%s\ \", names[i] );
}
return 0;
}


