SHARE
TWEET

Code Example

tsuedeun May 25th, 2019 91 in 149 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.     function championshipNet($games, $players) {
  3.         $players = explode(' ', $players);
  4.         sort($players); //сортировка по алфавиту
  5.  
  6.         for ($i = 0; $i < count($players); $i++) { //Расчет количества игр каждого игрока
  7.             if ($players[$i] != $players[$i+1]) {
  8.                 $count_players[$players[$i]] = 1;
  9.             } else {
  10.                 $count = 1;
  11.                 while ($players[$i] == $players[$i+1]) {
  12.                     $count++;
  13.                     $i++;
  14.                 }
  15.                 $count_players[$players[$i]] = $count;
  16.                 if ($count == log($games + 1, 2)) $answer[] = $players[$i];
  17.             }
  18.         }
  19.         sort($count_players); //сортировка по возрастанию кол-ва игр (индексы фамилий теперь числовые)
  20.  
  21.         for ($i = 1; $i <= log(count($count_players), 2); $i++) { //Расчет правильного кол-ва игр для игроков в правильной сетке
  22.             for ($j = 1; $j <= count($count_players) / 2**$i; $j++) {
  23.                 $valid_net_count[] = $i;
  24.             }
  25.         }
  26.         $valid_net_count[] = $i - 1;
  27.  
  28.         if ($valid_net_count == $count_players) { //сравнение правильной сетки с текущей
  29.             echo implode(' - ', $answer);
  30.         } else {
  31.             echo 'Неправильная сетка чемпионата';
  32.         }
  33.     }
  34.  
  35.     championshipNet(7, 'GORBOVSKII ABALKIN SIKORSKI KAMMERER SIKORSKI GORBOVSKII BYKOV IURKOVSKII PRIVALOV BYKOV GORBOVSKII IURKOVSKII      IURKOVSKII KIVRIN');
  36. ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top