add: TP02Q04 solved
This commit is contained in:
parent
001503138c
commit
7feb579ed1
|
|
@ -0,0 +1 @@
|
||||||
|
753045 0ms 2228
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,439 @@
|
||||||
|
/**
|
||||||
|
* @path TP02Q04 - Pesquisa Binária em C/Player.c
|
||||||
|
* @description C file that implements the Player class with binary search
|
||||||
|
* @author Pedro Lopes - github.com/httpspedroh
|
||||||
|
* @version 1.0
|
||||||
|
* @update 2023-09-27
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Includes
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
#define MAX_PLAYERS 4000
|
||||||
|
#define FILE_PATH "/tmp/players.csv"
|
||||||
|
|
||||||
|
#define MAX_NAME_SIZE 40
|
||||||
|
#define MAX_COLLEGE_SIZE 60
|
||||||
|
#define MAX_BIRTH_CITY_SIZE 40
|
||||||
|
#define MAX_BIRTH_STATE_SIZE 40
|
||||||
|
|
||||||
|
#define MAX_LINE_SIZE 300
|
||||||
|
#define MAX_ATTRIBUTE_SIZE 100
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Structs
|
||||||
|
typedef struct Player {
|
||||||
|
int id;
|
||||||
|
char *name;
|
||||||
|
int height;
|
||||||
|
int weight;
|
||||||
|
int birthYear;
|
||||||
|
char *birthCity;
|
||||||
|
char *birthState;
|
||||||
|
char *college;
|
||||||
|
} Player;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Global variables
|
||||||
|
Player allPlayers[MAX_PLAYERS];
|
||||||
|
int n = 0;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Functions
|
||||||
|
bool isEnd(char* line) { return line[0] == 'F' && line[1] == 'I' && line[2] == 'M'; }
|
||||||
|
|
||||||
|
void substring(char *string, char *stringStart, int length) {
|
||||||
|
|
||||||
|
strncpy(string, stringStart, length);
|
||||||
|
string[length] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
void proccess_attribute(char *attribute, char **substringStart, char **substringEnd, bool isFirstAttribute) {
|
||||||
|
|
||||||
|
// Skip first comma
|
||||||
|
if(!isFirstAttribute) {
|
||||||
|
|
||||||
|
if(*substringEnd != NULL) *substringStart = *substringEnd + 1;
|
||||||
|
else *substringStart = *substringEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get next comma
|
||||||
|
*substringEnd = strchr(*substringStart, ',');
|
||||||
|
|
||||||
|
// Get substring
|
||||||
|
if(*substringEnd) substring(attribute, *substringStart, *substringEnd - *substringStart);
|
||||||
|
else strcpy(attribute, *substringStart);
|
||||||
|
|
||||||
|
// Set default value if attribute is empty
|
||||||
|
if(strcmp(attribute, "") == 0 || attribute[0] == '\n' || attribute[0] == '\r' || attribute[0] == '\0') strcpy(attribute, "nao informado");
|
||||||
|
|
||||||
|
// Clean \n from the end of the string
|
||||||
|
if(attribute[strlen(attribute) - 1] == '\n') attribute[strlen(attribute) - 1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Methods signatures
|
||||||
|
|
||||||
|
// Class
|
||||||
|
Player player_newBlank();
|
||||||
|
Player player_new(int id, char *name, int height, int weight, int birthYear, char *birthCity, char *birthState, char *college);
|
||||||
|
Player *player_clone(Player *player);
|
||||||
|
void player_print(Player *player);
|
||||||
|
Player player_read(char *line);
|
||||||
|
Player *player_searchById(int id);
|
||||||
|
|
||||||
|
// Gets
|
||||||
|
int player_getId(Player *player);
|
||||||
|
char *player_getName(Player *player);
|
||||||
|
int player_getHeight(Player *player);
|
||||||
|
int player_getWeight(Player *player);
|
||||||
|
char *player_getCollege(Player *player);
|
||||||
|
int player_getBirthYear(Player *player);
|
||||||
|
char *player_getBirthCity(Player *player);
|
||||||
|
char *player_getBirthState(Player *player);
|
||||||
|
|
||||||
|
// Sets
|
||||||
|
void player_setId(Player *player, int id);
|
||||||
|
void player_setName(Player *player, char *name);
|
||||||
|
void player_setHeight(Player *player, int height);
|
||||||
|
void player_setWeight(Player *player, int weight);
|
||||||
|
void player_setCollege(Player *player, char *college);
|
||||||
|
void player_setBirthYear(Player *player, int birthYear);
|
||||||
|
void player_setBirthCity(Player *player, char *birthCity);
|
||||||
|
void player_setBirthState(Player *player, char *birthState);
|
||||||
|
|
||||||
|
// General
|
||||||
|
void startPlayers();
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Methods implementations
|
||||||
|
|
||||||
|
// Class
|
||||||
|
Player player_newBlank() {
|
||||||
|
|
||||||
|
Player player;
|
||||||
|
|
||||||
|
player.id = -1;
|
||||||
|
player.height = -1;
|
||||||
|
player.weight = -1;
|
||||||
|
player.birthYear = -1;
|
||||||
|
|
||||||
|
player.name = (char *) calloc(MAX_NAME_SIZE, sizeof(char));
|
||||||
|
strcpy(player.name, "");
|
||||||
|
|
||||||
|
player.birthCity = (char *) calloc(MAX_BIRTH_CITY_SIZE, sizeof(char));
|
||||||
|
strcpy(player.birthCity, "");
|
||||||
|
|
||||||
|
player.birthState = (char *) calloc(MAX_BIRTH_STATE_SIZE, sizeof(char));
|
||||||
|
strcpy(player.birthState, "");
|
||||||
|
|
||||||
|
player.college = (char *) calloc(MAX_COLLEGE_SIZE, sizeof(char));
|
||||||
|
strcpy(player.college, "");
|
||||||
|
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player_new(int id, char *name, int height, int weight, int birthYear, char *birthCity, char *birthState, char *college) {
|
||||||
|
|
||||||
|
Player player;
|
||||||
|
|
||||||
|
player.id = id;
|
||||||
|
player.height = height;
|
||||||
|
player.weight = weight;
|
||||||
|
player.birthYear = birthYear;
|
||||||
|
|
||||||
|
player.name = (char *) calloc(MAX_NAME_SIZE, sizeof(char));
|
||||||
|
strcpy(player.name, name);
|
||||||
|
|
||||||
|
player.birthCity = (char *) calloc(MAX_BIRTH_CITY_SIZE, sizeof(char));
|
||||||
|
strcpy(player.birthCity, birthCity);
|
||||||
|
|
||||||
|
player.birthState = (char *) calloc(MAX_BIRTH_STATE_SIZE, sizeof(char));
|
||||||
|
strcpy(player.birthState, birthState);
|
||||||
|
|
||||||
|
player.college = (char *) calloc(MAX_COLLEGE_SIZE, sizeof(char));
|
||||||
|
strcpy(player.college, college);
|
||||||
|
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player *player_clone(Player *player) {
|
||||||
|
|
||||||
|
Player *clone = (Player *) malloc(sizeof(Player));
|
||||||
|
|
||||||
|
clone -> id = player -> id;
|
||||||
|
clone -> height = player -> height;
|
||||||
|
clone -> weight = player -> weight;
|
||||||
|
|
||||||
|
clone -> name = (char *) calloc(MAX_NAME_SIZE, sizeof(char));
|
||||||
|
strcpy(clone -> name, player -> name);
|
||||||
|
|
||||||
|
clone -> birthCity = (char *) calloc(MAX_BIRTH_CITY_SIZE, sizeof(char));
|
||||||
|
strcpy(clone -> birthCity, player -> birthCity);
|
||||||
|
|
||||||
|
clone -> birthState = (char *) calloc(MAX_BIRTH_STATE_SIZE, sizeof(char));
|
||||||
|
strcpy(clone -> birthState, player -> birthState);
|
||||||
|
|
||||||
|
clone -> college = (char *) calloc(MAX_COLLEGE_SIZE, sizeof(char));
|
||||||
|
strcpy(clone -> college, player -> college);
|
||||||
|
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
void player_print(Player *player) {
|
||||||
|
|
||||||
|
printf("[%d ## %s ## %d ## %d ## %d ## %s ## %s ## %s]\n",
|
||||||
|
player -> id,
|
||||||
|
player -> name,
|
||||||
|
player -> height,
|
||||||
|
player -> weight,
|
||||||
|
player -> birthYear,
|
||||||
|
player -> college,
|
||||||
|
player -> birthCity,
|
||||||
|
player -> birthState
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player_read(char *line) {
|
||||||
|
|
||||||
|
Player player = player_newBlank();
|
||||||
|
|
||||||
|
char *substringStart = line;
|
||||||
|
char *substringEnd = NULL;
|
||||||
|
char attribute[MAX_ATTRIBUTE_SIZE];
|
||||||
|
|
||||||
|
// Get id
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, true);
|
||||||
|
player_setId(&player, atoi(attribute));
|
||||||
|
|
||||||
|
// Get name
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setName(&player, attribute);
|
||||||
|
|
||||||
|
// Get height
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setHeight(&player, atoi(attribute));
|
||||||
|
|
||||||
|
// Get weight
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setWeight(&player, atoi(attribute));
|
||||||
|
|
||||||
|
// Get college
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
|
||||||
|
// if(player_getId(&player) == 2159) printf("attribute: %s\n", attribute);
|
||||||
|
|
||||||
|
player_setCollege(&player, attribute);
|
||||||
|
|
||||||
|
// Get birth year
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setBirthYear(&player, atoi(attribute));
|
||||||
|
|
||||||
|
// Get birth city
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setBirthCity(&player, attribute);
|
||||||
|
|
||||||
|
// Get birth state
|
||||||
|
proccess_attribute(attribute, &substringStart, &substringEnd, false);
|
||||||
|
player_setBirthState(&player, attribute);
|
||||||
|
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player *player_searchById(int id) {
|
||||||
|
|
||||||
|
for(int i = 0; i < n; i++) {
|
||||||
|
|
||||||
|
if(player_getId(&allPlayers[i]) == id) return &allPlayers[i];
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets
|
||||||
|
int player_getId(Player *player) { return player -> id; }
|
||||||
|
char *player_getName(Player *player) { return player -> name; }
|
||||||
|
int player_getHeight(Player *player) { return player -> height; }
|
||||||
|
int player_getWeight(Player *player) { return player -> weight; }
|
||||||
|
char *player_getCollege(Player *player) { return player -> college; }
|
||||||
|
int player_getBirthYear(Player *player) { return player -> birthYear; }
|
||||||
|
char *player_getBirthCity(Player *player) { return player -> birthCity; }
|
||||||
|
char *player_getBirthState(Player *player) { return player -> birthState; }
|
||||||
|
|
||||||
|
// Sets
|
||||||
|
void player_setId(Player *player, int id) { player -> id = id; }
|
||||||
|
void player_setName(Player *player, char *name) { strcpy(player -> name, name); }
|
||||||
|
void player_setHeight(Player *player, int height) { player -> height = height; }
|
||||||
|
void player_setWeight(Player *player, int weight) { player -> weight = weight; }
|
||||||
|
void player_setBirthYear(Player *player, int birthYear) { player -> birthYear = birthYear; }
|
||||||
|
void player_setBirthCity(Player *player, char *birthCity) { strcpy(player -> birthCity, birthCity); }
|
||||||
|
void player_setBirthState(Player *player, char *birthState) { strcpy(player -> birthState, birthState); }
|
||||||
|
void player_setCollege(Player *player, char *college) { strcpy(player -> college, college); }
|
||||||
|
|
||||||
|
// General
|
||||||
|
void startPlayers() {
|
||||||
|
|
||||||
|
// Open file
|
||||||
|
FILE *fp;
|
||||||
|
char *line = NULL;
|
||||||
|
size_t len = 0;
|
||||||
|
ssize_t read;
|
||||||
|
|
||||||
|
fp = fopen(FILE_PATH, "r");
|
||||||
|
|
||||||
|
if(fp == NULL) {
|
||||||
|
|
||||||
|
perror("x Error opening file");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip first line
|
||||||
|
getline(&line, &len, fp);
|
||||||
|
|
||||||
|
// Read all lines
|
||||||
|
while((read = getline(&line, &len, fp)) != -1) {
|
||||||
|
|
||||||
|
// Read player from line
|
||||||
|
Player player = player_read(line);
|
||||||
|
|
||||||
|
allPlayers[n++] = player;
|
||||||
|
|
||||||
|
if(n >= MAX_PLAYERS) {
|
||||||
|
|
||||||
|
perror("x Max players reached");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close file and free memory
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
if(line) free(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// Main
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// #1 - Start - Read all players in CSV file
|
||||||
|
startPlayers();
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// #2 - Read input and print players from pub.in id entries and add to mainPlayers array
|
||||||
|
|
||||||
|
// Initialize mainPlayers array
|
||||||
|
Player mainPlayers[MAX_PLAYERS];
|
||||||
|
int m = 0;
|
||||||
|
|
||||||
|
char in[5];
|
||||||
|
scanf(" %[^\n]s", in);
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
|
||||||
|
if(isEnd(in)) break;
|
||||||
|
else {
|
||||||
|
|
||||||
|
int id = atoi(in);
|
||||||
|
|
||||||
|
Player *player = player_searchById(id);
|
||||||
|
|
||||||
|
if(player) mainPlayers[m++] = *player;
|
||||||
|
|
||||||
|
// ------------------------- //
|
||||||
|
|
||||||
|
scanf(" %[^\n]s", in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------- //
|
||||||
|
|
||||||
|
// #3 - Read input and search for players from pub.in name entries in mainPlayers array
|
||||||
|
|
||||||
|
// Start benchmark
|
||||||
|
clock_t startTime = clock();
|
||||||
|
int comparisons = 0;
|
||||||
|
|
||||||
|
// Order mainPlayers array by name asc
|
||||||
|
for(int i = 0; i < m; i++) {
|
||||||
|
|
||||||
|
for(int j = i + 1; j < m; j++) {
|
||||||
|
|
||||||
|
comparisons++;
|
||||||
|
|
||||||
|
if(strcmp(player_getName(&mainPlayers[i]), player_getName(&mainPlayers[j])) > 0) {
|
||||||
|
|
||||||
|
Player aux = mainPlayers[i];
|
||||||
|
mainPlayers[i] = mainPlayers[j];
|
||||||
|
mainPlayers[j] = aux;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read input
|
||||||
|
char name[MAX_NAME_SIZE];
|
||||||
|
scanf(" %[^\n]s", name);
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
|
||||||
|
if(isEnd(name)) break;
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Search for player
|
||||||
|
Player *foundPlayer = NULL;
|
||||||
|
|
||||||
|
// Binary search
|
||||||
|
int left = 0;
|
||||||
|
int right = m - 1;
|
||||||
|
|
||||||
|
while(left <= right) {
|
||||||
|
|
||||||
|
int mid = left + (right - left) / 2;
|
||||||
|
|
||||||
|
comparisons += 2;
|
||||||
|
|
||||||
|
if(strcmp(player_getName(&mainPlayers[mid]), name) == 0) {
|
||||||
|
|
||||||
|
foundPlayer = &mainPlayers[mid];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if(strcmp(player_getName(&mainPlayers[mid]), name) < 0) left = mid + 1;
|
||||||
|
else right = mid - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print result
|
||||||
|
printf("%s\n", foundPlayer == NULL ? "NAO" : "SIM");
|
||||||
|
|
||||||
|
// ------------------------- //
|
||||||
|
|
||||||
|
scanf(" %[^\n]s", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------- //
|
||||||
|
|
||||||
|
// Save benchmark in file
|
||||||
|
FILE *fp = fopen("753045_binaria.txt", "w");
|
||||||
|
fprintf(fp, "753045\t%.0fms\t%d", (double)(clock() - startTime) / CLOCKS_PER_SEC * 1000.0, comparisons);
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
// ----------------- //
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
|
@ -0,0 +1,151 @@
|
||||||
|
1
|
||||||
|
104
|
||||||
|
1047
|
||||||
|
1087
|
||||||
|
1124
|
||||||
|
119
|
||||||
|
1425
|
||||||
|
1456
|
||||||
|
1487
|
||||||
|
149
|
||||||
|
1494
|
||||||
|
1525
|
||||||
|
1565
|
||||||
|
1572
|
||||||
|
1583
|
||||||
|
1702
|
||||||
|
1731
|
||||||
|
1742
|
||||||
|
1748
|
||||||
|
1786
|
||||||
|
1796
|
||||||
|
1809
|
||||||
|
1868
|
||||||
|
1880
|
||||||
|
193
|
||||||
|
1998
|
||||||
|
2011
|
||||||
|
2035
|
||||||
|
2083
|
||||||
|
217
|
||||||
|
2177
|
||||||
|
2183
|
||||||
|
2203
|
||||||
|
228
|
||||||
|
401
|
||||||
|
412
|
||||||
|
448
|
||||||
|
479
|
||||||
|
53
|
||||||
|
533
|
||||||
|
557
|
||||||
|
627
|
||||||
|
687
|
||||||
|
721
|
||||||
|
797
|
||||||
|
812
|
||||||
|
848
|
||||||
|
950
|
||||||
|
98
|
||||||
|
FIM
|
||||||
|
A.J. Bramlett
|
||||||
|
Aaron Williams
|
||||||
|
Adrian Smith
|
||||||
|
Al Ferrari
|
||||||
|
Alec Kessler
|
||||||
|
Andy Johnson
|
||||||
|
Ariel Maughan
|
||||||
|
Art Burris
|
||||||
|
Ben McDonald
|
||||||
|
Ben Poquette
|
||||||
|
Bill Ebben
|
||||||
|
Bill Laimbeer
|
||||||
|
Bob Kinney
|
||||||
|
Bob Schafer
|
||||||
|
Bones McKinney
|
||||||
|
Carl Shaeffer
|
||||||
|
Cheick Diallo
|
||||||
|
Chris Harris
|
||||||
|
Chris Welp
|
||||||
|
Cliff Barker
|
||||||
|
Craig Dykema
|
||||||
|
Curtis Kitchen
|
||||||
|
Damian Jones
|
||||||
|
Damjan Rudez
|
||||||
|
Darnell Mee
|
||||||
|
Darren Tillis
|
||||||
|
Darryl Johnson
|
||||||
|
Dejounte Murray
|
||||||
|
Devin Booker
|
||||||
|
Devyn Marble
|
||||||
|
Dick Schnittker
|
||||||
|
Dijon Thompson
|
||||||
|
Donatas Motiejunas
|
||||||
|
Ed Dahler
|
||||||
|
Eddie Phillips
|
||||||
|
Eric Riley
|
||||||
|
Frank Johnson
|
||||||
|
Frank Selvy
|
||||||
|
Gaylon Nickerson
|
||||||
|
George Reynolds
|
||||||
|
Glenn McDonald
|
||||||
|
Harold Pressley
|
||||||
|
Hassan Whiteside
|
||||||
|
Herb Williams
|
||||||
|
Hiram Fuller
|
||||||
|
Ira Newble
|
||||||
|
Jack George
|
||||||
|
Jack Molinas
|
||||||
|
James Blackwell
|
||||||
|
Jaren Jackson
|
||||||
|
Jeff Sanders
|
||||||
|
Jeremy Evans
|
||||||
|
Jerry Fleishman
|
||||||
|
Joe Buckhalter
|
||||||
|
Joe Caldwell
|
||||||
|
Joe Young
|
||||||
|
John Johnson
|
||||||
|
John Stroud
|
||||||
|
Johnny Jones
|
||||||
|
Johnny Orr
|
||||||
|
Ken Johnson
|
||||||
|
Ken Norman
|
||||||
|
Kevin Grevey
|
||||||
|
Kevin Willis
|
||||||
|
Larry Drew
|
||||||
|
Larry Sykes
|
||||||
|
Leo Kubiak
|
||||||
|
Lionel Chalmers
|
||||||
|
Lorenzen Wright
|
||||||
|
Luigi Datome
|
||||||
|
Luis Flores
|
||||||
|
Mamadou N'Diaye
|
||||||
|
Marcus Fizer
|
||||||
|
Mark Strickland
|
||||||
|
Marvin Barnes
|
||||||
|
Mason Plumlee
|
||||||
|
Michael Phelps
|
||||||
|
Michael Stewart
|
||||||
|
Mike Davis
|
||||||
|
Montrezl Harrell
|
||||||
|
Nick Fazekas
|
||||||
|
Nikola Vucevic
|
||||||
|
Nolan Smith
|
||||||
|
Ollie Johnson
|
||||||
|
Omri Casspi
|
||||||
|
Othello Hunter
|
||||||
|
Paul Walther
|
||||||
|
Peyton Siva
|
||||||
|
Predrag Drobnjak
|
||||||
|
Quincy Acy
|
||||||
|
Ralph Drollinger
|
||||||
|
Robert Horry
|
||||||
|
Ron Harper
|
||||||
|
Russ Schoene
|
||||||
|
Sarunas Marciulionis*
|
||||||
|
Stephen Thompson
|
||||||
|
Thaddeus Young
|
||||||
|
Toby Kimball
|
||||||
|
Tony Bennett
|
||||||
|
Walter Dukes
|
||||||
|
FIM
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
|
SIM
|
||||||
|
SIM
|
||||||
|
NAO
|
||||||
Loading…
Reference in New Issue