using System;
using System.Diagnostics;
namespace ConsoleApplication52
{
class Program
{
static void Main(string[] args)
{
Random rnd;
const int cycles = 1000000;
rnd = new Random(1);
int total1 = 0;
Stopwatch sw1 = Stopwatch.StartNew();
for (int i = 0; i < cycles; i++)
{
if (rnd.Next() % 4 == 0)
{
total1++;
}
}
sw1.Stop();
rnd = new Random(1);
int total2 = 0;
Stopwatch sw2 = Stopwatch.StartNew();
for (int i = 0; i < cycles; i++)
{
if ((rnd.Next() & 3) == 0)
{
total2++;
}
}
sw2.Stop();
Console.WriteLine("%: {0} in {1} ticks", total1, sw1.ElapsedTicks);
Console.WriteLine("&: {0} in {1} ticks", total2, sw2.ElapsedTicks);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CgpuYW1lc3BhY2UgQ29uc29sZUFwcGxpY2F0aW9uNTIKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIFJhbmRvbSBybmQ7CiAgICAgICAgICAgIGNvbnN0IGludCBjeWNsZXMgPSAxMDAwMDAwOwogICAgICAgICAgICAKICAgICAgICAgICAgcm5kID0gbmV3IFJhbmRvbSgxKTsKCiAgICAgICAgICAgIGludCB0b3RhbDEgPSAwOwogICAgICAgICAgICBTdG9wd2F0Y2ggc3cxID0gU3RvcHdhdGNoLlN0YXJ0TmV3KCk7CgogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGN5Y2xlczsgaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAocm5kLk5leHQoKSAlIDQgPT0gMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0b3RhbDErKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3cxLlN0b3AoKTsKCiAgICAgICAgICAgIHJuZCA9IG5ldyBSYW5kb20oMSk7CgogICAgICAgICAgICBpbnQgdG90YWwyID0gMDsKICAgICAgICAgICAgU3RvcHdhdGNoIHN3MiA9IFN0b3B3YXRjaC5TdGFydE5ldygpOwoKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjeWNsZXM7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKChybmQuTmV4dCgpICYgMykgPT0gMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0b3RhbDIrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3cyLlN0b3AoKTsKCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIlOiB7MH0gaW4gezF9IHRpY2tzIiwgdG90YWwxLCBzdzEuRWxhcHNlZFRpY2tzKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiY6IHswfSBpbiB7MX0gdGlja3MiLCB0b3RhbDIsIHN3Mi5FbGFwc2VkVGlja3MpOwogICAgICAgIH0KICAgIH0KfQo=