<?php
$out = fopen('php://stdout', "w"); //
function test() {
// setup code
$remove_values = array(); for ($x = 0; $x <= 20; $x++) $remove_values[] = rand(2, 14); // Testing code
//
foreach($remove_values as $value) {
if($value === $card1) {
$card1 = 0;
}
if($value === $card2) {
$card2 = 0;
}
if($value === $card3) {
$card3 = 0;
}
if($value === $card4) {
$card4 = 0;
}
if($value === $card5) {
$card5 = 0;
}
if($value === $card6) {
$card6 = 0;
}
if($value === $card7) {
$card7 = 0;
}
}
//
//
return ($card1 + $card2 + $card3 + $card4 + $card5 + $card6 + $card7);
}
function test2() {
// setup code
$remove_values = array(); /* USE ASSOC. ARRAY */
for ($x = 0; $x <= 20; $x++) {
$remove_values[$r] = $r;
}
// Testing code
//
$card1 = (isset($remove_values[$card1]) - 1) & $card1; $card2 = (isset($remove_values[$card2]) - 1) & $card2; $card3 = (isset($remove_values[$card3]) - 1) & $card3; $card4 = (isset($remove_values[$card4]) - 1) & $card4; $card5 = (isset($remove_values[$card5]) - 1) & $card5; $card6 = (isset($remove_values[$card6]) - 1) & $card6; $card7 = (isset($remove_values[$card7]) - 1) & $card7; //
//
return ($card1 + $card2 + $card3 + $card4 + $card5 + $card6 + $card7);
}
//
$N = 30000;
// TEST ORIGINAL
$total = 0;
for($x = 0; $x < $N; $x++) {
$total += test();
}
fwrite($out, sprintf("Original\nTime %f\nResult %d\n", $end - $start, $total)); // TEST OTHER
$total = 0;
for($x = 0; $x < $N; $x++) {
$total += test2();
}
fwrite($out, sprintf("Other\nTime %f\nResult %d\n", $end - $start, $total)); // TEST ORIGINAL
$total = 0;
for($x = 0; $x < $N; $x++) {
$total += test();
}
fwrite($out, sprintf("Original\nTime %f\nResult %d\n", $end - $start, $total)); // TEST OTHER
$total = 0;
for($x = 0; $x < $N; $x++) {
$total += test2();
}
fwrite($out, sprintf("Other\nTime %f\nResult %d\n", $end - $start, $total));
$v = 13;
fwrite($out, "T ".(true - 1)." F ".(false - 1)."\n");
//
PD9waHAKJG91dCA9IGZvcGVuKCdwaHA6Ly9zdGRvdXQnLCAidyIpOwovLwpmdW5jdGlvbiB0ZXN0KCkgewoJLy8gc2V0dXAgY29kZQoJJHJlbW92ZV92YWx1ZXMgPSBhcnJheSgpOwoJZm9yICgkeCA9IDA7ICR4IDw9IDIwOyAkeCsrKSAkcmVtb3ZlX3ZhbHVlc1tdID0gcmFuZCgyLCAxNCk7CgkkY2FyZDEgPSByYW5kKDIsIDE0KTsKCSRjYXJkMiA9IHJhbmQoMiwgMTQpOwoJJGNhcmQzID0gcmFuZCgyLCAxNCk7CgkkY2FyZDQgPSByYW5kKDIsIDE0KTsKCSRjYXJkNSA9IHJhbmQoMiwgMTQpOwoJJGNhcmQ2ID0gcmFuZCgyLCAxNCk7CgkkY2FyZDcgPSByYW5kKDIsIDE0KTsKCS8vIFRlc3RpbmcgY29kZQoJLy8KCWZvcmVhY2goJHJlbW92ZV92YWx1ZXMgYXMgJHZhbHVlKSB7CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDEpIHsKICAgICAgICAJJGNhcmQxID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDIpIHsKICAgICAgICAJJGNhcmQyID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDMpIHsKICAgICAgICAJJGNhcmQzID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDQpIHsKICAgICAgICAJJGNhcmQ0ID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDUpIHsKICAgICAgICAJJGNhcmQ1ID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDYpIHsKICAgICAgICAJJGNhcmQ2ID0gMDsKICAgIAl9CiAgICAJaWYoJHZhbHVlID09PSAkY2FyZDcpIHsKICAgICAgICAJJGNhcmQ3ID0gMDsKICAgIAl9Cgl9CgkvLwoJLy8KCXJldHVybiAoJGNhcmQxICsgJGNhcmQyICsgJGNhcmQzICsgJGNhcmQ0ICsgJGNhcmQ1ICsgJGNhcmQ2ICsgJGNhcmQ3KTsKfQpmdW5jdGlvbiB0ZXN0MigpIHsKCS8vIHNldHVwIGNvZGUKCSRyZW1vdmVfdmFsdWVzID0gYXJyYXkoKTsKCS8qIFVTRSBBU1NPQy4gQVJSQVkgKi8KCWZvciAoJHggPSAwOyAkeCA8PSAyMDsgJHgrKykgewoJCSRyID0gcmFuZCgyLCAxNCk7CgkJJHJlbW92ZV92YWx1ZXNbJHJdID0gJHI7Cgl9CgkkY2FyZDEgPSByYW5kKDIsIDE0KTsKCSRjYXJkMiA9IHJhbmQoMiwgMTQpOwoJJGNhcmQzID0gcmFuZCgyLCAxNCk7CgkkY2FyZDQgPSByYW5kKDIsIDE0KTsKCSRjYXJkNSA9IHJhbmQoMiwgMTQpOwoJJGNhcmQ2ID0gcmFuZCgyLCAxNCk7CgkkY2FyZDcgPSByYW5kKDIsIDE0KTsKCS8vIFRlc3RpbmcgY29kZQoJLy8KCSRjYXJkMSA9IChpc3NldCgkcmVtb3ZlX3ZhbHVlc1skY2FyZDFdKSAtIDEpICYgJGNhcmQxOwoJJGNhcmQyID0gKGlzc2V0KCRyZW1vdmVfdmFsdWVzWyRjYXJkMl0pIC0gMSkgJiAkY2FyZDI7CgkkY2FyZDMgPSAoaXNzZXQoJHJlbW92ZV92YWx1ZXNbJGNhcmQzXSkgLSAxKSAmICRjYXJkMzsKCSRjYXJkNCA9IChpc3NldCgkcmVtb3ZlX3ZhbHVlc1skY2FyZDRdKSAtIDEpICYgJGNhcmQ0OwoJJGNhcmQ1ID0gKGlzc2V0KCRyZW1vdmVfdmFsdWVzWyRjYXJkNV0pIC0gMSkgJiAkY2FyZDU7CgkkY2FyZDYgPSAoaXNzZXQoJHJlbW92ZV92YWx1ZXNbJGNhcmQ2XSkgLSAxKSAmICRjYXJkNjsKCSRjYXJkNyA9IChpc3NldCgkcmVtb3ZlX3ZhbHVlc1skY2FyZDddKSAtIDEpICYgJGNhcmQ3OwoJLy8KCS8vCglyZXR1cm4gKCRjYXJkMSArICRjYXJkMiArICRjYXJkMyArICRjYXJkNCArICRjYXJkNSArICRjYXJkNiArICRjYXJkNyk7Cn0KLy8KJE4gPSAzMDAwMDsKCi8vIFRFU1QgT1JJR0lOQUwKJHRvdGFsID0gMDsKJHN0YXJ0ID0gbWljcm90aW1lKHRydWUpOwpmb3IoJHggPSAwOyAkeCA8ICROOyAkeCsrKSB7CglzcmFuZCgkeCArIDEzMzcpOwoJJHRvdGFsICs9IHRlc3QoKTsKfQokZW5kID0gbWljcm90aW1lKHRydWUpOwpmd3JpdGUoJG91dCwgc3ByaW50ZigiT3JpZ2luYWxcblRpbWUgJWZcblJlc3VsdCAlZFxuIiwgJGVuZCAtICRzdGFydCwgJHRvdGFsKSk7Ci8vIFRFU1QgT1RIRVIKJHRvdGFsID0gMDsKJHN0YXJ0ID0gbWljcm90aW1lKHRydWUpOwpmb3IoJHggPSAwOyAkeCA8ICROOyAkeCsrKSB7CglzcmFuZCgkeCArIDEzMzcpOwoJJHRvdGFsICs9IHRlc3QyKCk7Cn0KJGVuZCA9IG1pY3JvdGltZSh0cnVlKTsKZndyaXRlKCRvdXQsIHNwcmludGYoIk90aGVyXG5UaW1lICVmXG5SZXN1bHQgJWRcbiIsICRlbmQgLSAkc3RhcnQsICR0b3RhbCkpOwovLyBURVNUIE9SSUdJTkFMCiR0b3RhbCA9IDA7CiRzdGFydCA9IG1pY3JvdGltZSh0cnVlKTsKZm9yKCR4ID0gMDsgJHggPCAkTjsgJHgrKykgewoJc3JhbmQoJHggKyAxMzM3KTsKCSR0b3RhbCArPSB0ZXN0KCk7Cn0KJGVuZCA9IG1pY3JvdGltZSh0cnVlKTsKZndyaXRlKCRvdXQsIHNwcmludGYoIk9yaWdpbmFsXG5UaW1lICVmXG5SZXN1bHQgJWRcbiIsICRlbmQgLSAkc3RhcnQsICR0b3RhbCkpOwovLyBURVNUIE9USEVSCiR0b3RhbCA9IDA7CiRzdGFydCA9IG1pY3JvdGltZSh0cnVlKTsKZm9yKCR4ID0gMDsgJHggPCAkTjsgJHgrKykgewoJc3JhbmQoJHggKyAxMzM3KTsKCSR0b3RhbCArPSB0ZXN0MigpOwp9CiRlbmQgPSBtaWNyb3RpbWUodHJ1ZSk7CmZ3cml0ZSgkb3V0LCBzcHJpbnRmKCJPdGhlclxuVGltZSAlZlxuUmVzdWx0ICVkXG4iLCAkZW5kIC0gJHN0YXJ0LCAkdG90YWwpKTsKCiR2ID0gMTM7CmZ3cml0ZSgkb3V0LCAiVCAiLih0cnVlIC0gMSkuIiBGICIuKGZhbHNlIC0gMSkuIlxuIik7CgovLwpmY2xvc2UoJG91dCk7