Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $input = readline();
- $players =[];
- while ($input !== "Season end") {
- if (strstr($input, '->')) {
- list($player, $position, $skill) = explode(" -> ", $input);
- if (!key_exists($player, $players)) {
- $players[$player][$position] = $position;
- $players[$player][$skill] = intval($skill);
- } else {
- if (!key_exists($position, $players[$player])) {
- $players[$player][$position] = $position;
- if (key_exists($skill, $players[$player])) {
- $players[$player]['$skill'.$skill] = intval($skill);
- } else {
- $players[$player][$skill] = intval($skill);
- }
- } else {
- if ($players[$player][$skill][0] === '$') {
- if ($players[$player]['$skill'.$skill] < $skill) {
- $players[$player][$skill] = intval($skill);
- }
- } else {
- if ($players[$player][$skill] < $skill) {
- $players[$player][$skill] = intval($skill);
- }
- }
- }
- }
- } else if (false !== strpos($input, 'vs')) {
- list($leftPlayer, $rightPlayer) = explode(" vs ", $input);
- if (key_exists($leftPlayer, $players) && key_exists($rightPlayer, $players)) {
- $matches = array_intersect($players[$leftPlayer], $players[$rightPlayer]);
- if (count($matches) !== 0) {
- $totalLeftSum = 0 ;
- foreach ($players[$leftPlayer] as $key => $value) {
- if (is_numeric($key)) {
- $totalLeftSum += $key;
- }
- }
- $totalRightSum = 0;
- foreach ($players[$rightPlayer] as $key => $value) {
- if (is_numeric($key)) {
- $totalRightSum += $key;
- }
- }
- if ($totalRightSum > $totalLeftSum) {
- unset($players[$leftPlayer]);
- } else if ($totalLeftSum > $totalRightSum) {
- unset($players[$rightPlayer]);
- } else if($totalRightSum === $totalLeftSum) {
- $input = readline();
- continue;
- }
- }
- }
- }
- $input = readline();
- }
- $playersPrint = [];
- $statsPrint = [];
- foreach ($players as $name => $values) {
- $totalSum = 0;
- foreach ($values as $key => $value) {
- if (is_numeric($key)) {
- $totalSum += $key;
- } else if ($key[0] === '$') {
- $totalSum += $value;
- }
- }
- $playersPrint[$name] = $totalSum;
- }
- foreach ($players as $currName => $val) {
- $currStat = implode(" ", $players[$currName]);
- $tokens = explode(" ", $currStat);
- if (count($tokens) === 2) {
- $statsPrint[$currName][$tokens[0]] = intval($tokens[1]);
- } else {
- for ($i = 0; $i < count($tokens);$i++){
- if ($i % 2 === 1) {
- $statsPrint[$currName][$tokens[$i - 1]] = intval($tokens[$i]);
- }
- }
- }
- }
- uksort($playersPrint, function($key1, $key2) use ($playersPrint){
- $val1 = $playersPrint[$key1];
- $val2 = $playersPrint[$key2];
- if ($val1 === $val2) {
- return $key1 <=> $key2;
- }
- return $val2 <=> $val1;
- });
- foreach ($playersPrint as $name => $val) {
- echo "$name: $val skill" . PHP_EOL;
- foreach ($statsPrint[$name] as $pos => $stat) {
- $currArr = $statsPrint[$name];
- uksort($currArr, function($key1, $key2) use($currArr) {
- $val1 = $currArr[$key1];
- $val2 = $currArr[$key2];
- if ($val1 === $val2) {
- return $key1 <=> $key2;
- }
- return $val2 <=> $val1;
- });
- }
- foreach ($currArr as $poss => $statt) {
- echo "- $poss <::> $statt" . PHP_EOL;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement