информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный сбой Azure и других сервисов... 
 Серьезный сбой AWS положил множество... 
 Фишинговая атака на Python-разработчиков 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / miscellaneous
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
для тех, кто увлекается олимпиадными задачами: 25.01.04 17:08  
Автор: tdes@work Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Расставить скобки в 2:2-3:3-4:4-5:5 так, чтобы получился результат больший 39, немного попробовав, решил написать скриптик :
<?php
$str = "ABCDEFGH";
$arr = array();
$brr = array();
$ind = array();

function MakeBraces($s) {
    global $arr,$brr;
    
    if(strlen($s) <= 2) {
        return $s;
    }
    else for($i=0;$i<strlen($s)-1;$i++) {
        
        $s1 = substr($s,0,$i+1);
        if(strlen($s1) == 2) {
            $act = ord(substr($s1,0,1)) % 2 ? "/" : "-";
            $s1 = substr($s1,0,1).$act.substr($s1,1,1);
        }
        $s2 = substr($s,$i+1);
        if(strlen($s2) == 2) {
            $act = ord(substr($s1,0,1)) % 2 ? "-" : "/";
            $s2 = substr($s2,0,1).$act.substr($s2,1,1);
        }
        $act = (ord(substr($s,0,1))+$i) % 2 ? "/" : "-";
        $arr[$s][] = "(($s1)$act($s2))";
        $arr[$s] = array_unique($arr[$s]);
        if(strlen($s) != 3) {
            $brr[$s][] = "(($s1)$act($s2))";
            $brr[$s] = array_unique($brr[$s]);
        }
        MakeBraces(substr($s,0,$i+1));
	MakeBraces(substr($s,$i+1));
    }
}

MakeBraces($str);

function cmp($c1, $c2) {
    $a = strlen($c1);
    $b = strlen($c2);
   if ($a == $b) { 
       return 0; 
   } 
   return ($a < $b) ? 1 : -1; 
} 

uksort($arr, "cmp");
uksort($brr, "cmp");
$ind = array_keys($brr);

for($l = 3; $l < strlen($str); $l++) {
    $crr = array(); // will store next iteration $brr[]
    
    while (list($key,$value) = each($arr)) {
        if(strlen($key) == $l) {
            for($i=0;$i<count($ind);$i++) {
                $count = count($brr[$ind[$i]]);
                for($j=0;$j<$count;$j++) {
                    if(eregi("\($key\)", $brr[$ind[$i]][$j])) {
                        //echo $key." --- ".$brr[$ind[$i]][$j]."\n"; // finetuning
                        for($k=0;$k<count($arr[$key]);$k++) {
                            $crr[$ind[$i]][] = ereg_replace("\($key\)",$arr[$key][$k],$brr[$ind[$i]][$j]);
                        }
                        $brr[$ind[$i]][$j] = 0;
                    }
                }
            }
        }
    }
    
    for($i = 0; $i<count($ind);$i++) {
        for($j=0;$j<count($brr[$ind[$i]]);$j++) {
            if($brr[$ind[$i]][$j] != '0')  {
                $crr[$ind[$i]][] = $brr[$ind[$i]][$j];
            }
        }
    }
    
    uksort($crr,"cmp");
    $arr = array();
    $arr = array_slice($crr,0);
    $brr = array();
    $brr = array_slice($crr,0);
}

echo "<php";
    $pattern = array("A","B","C","D","E","F","G","H");
    $replacement = array("2","2","3","3","4","4","5","5");
    for($i=1;$i<count($final);$i++) {
        $final[$i] = str_replace($pattern,$replacement,$final[$i]);
        echo "echo ".$final[$i]."; echo '   ".$final[$i]."'.\"\\n\";\n";
    }
echo "?>";

/* solutions :
    52.5 =  ((2)/(((2-3)/(((3-4)/(4))-(5)))/(5)))
    -70  = ((2)/(((2-3)/((3)-((4)/(4-5))))/(5)))
    -70  = ((2)/(((2-3)/((3)-((4/4)-(5))))/(5)))
    50   = ((((2)/((2-3)/(3)))-(4))/((4-5)/(5)))
*/
?>

---
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach