class Main {
static final boolean isLucky_div(int n) {
return ((n / 100000) + ((n / 10000) % 10) == ((n / 1000) % 10) + ((n / 100) % 10)) &&
((n / 100000) + ((n / 10000) % 10) == ((n / 10) % 10) + (n % 10));
}
static final boolean isLucky_loop(int a) {
int[] d = new int[6];
for (int i=5; i>=0; --i) {
d[i] = a % 10;
a /= 10;
}
return d[0]+d[1] == d[2]+d[3] && d[2]+d[3] == d[4]+d[5];
}
public static void main
(String[] args
) { int loops = 10;
for (int k=0; k<2; k++) {
{
// div
long start
= System.
currentTimeMillis(); int count = 0;
for (int j=0; j<loops; j++) {
for (int i=0; i<1000000; i++) {
if (isLucky_div(i))
count++;
}
}
long time
= System.
currentTimeMillis() - start
; System.
out.
println("Divs: n=" + count
+ " t=" + time
+ "ms"); }
{
// loop
long start
= System.
currentTimeMillis(); int count = 0;
for (int j=0; j<loops; j++) {
for (int i=0; i<1000000; i++) {
if (isLucky_loop(i))
count++;
}
}
long time
= System.
currentTimeMillis() - start
; System.
out.
println("Loop: n=" + count
+ " t=" + time
+ "ms"); }}
}
}
Y2xhc3MgTWFpbiB7CgogICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNMdWNreV9kaXYoaW50IG4pIHsKICAgICAgICByZXR1cm4gKChuIC8gMTAwMDAwKSArICgobiAvIDEwMDAwKSAlIDEwKSA9PSAoKG4gLyAxMDAwKSAlIDEwKSArICgobiAvIDEwMCkgJSAxMCkpICYmCiAgICAgICAgICAgICAgICgobiAvIDEwMDAwMCkgKyAoKG4gLyAxMDAwMCkgJSAxMCkgPT0gKChuIC8gMTApICUgMTApICsgKG4gJSAxMCkpOwogICAgfQoKICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzTHVja3lfbG9vcChpbnQgYSkgewogICAgICAgIGludFtdIGQgPSBuZXcgaW50WzZdOwogICAgICAgIGZvciAoaW50IGk9NTsgaT49MDsgLS1pKSB7CiAgICAgICAgICAgIGRbaV0gPSBhICUgMTA7CiAgICAgICAgICAgIGEgLz0gMTA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkWzBdK2RbMV0gPT0gZFsyXStkWzNdICYmIGRbMl0rZFszXSA9PSBkWzRdK2RbNV07CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludCBsb29wcyA9IDEwOwoJZm9yIChpbnQgaz0wOyBrPDI7IGsrKykgewogICAgICAgIHsKICAgICAgICAgICAgLy8gZGl2CiAgICAgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGxvb3BzOyBqKyspIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwxMDAwMDAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNMdWNreV9kaXYoaSkpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydDsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEaXZzOiBuPSIgKyBjb3VudCArICIgdD0iICsgdGltZSArICJtcyIpOwogICAgICAgIH0KICAgICAgICB7CiAgICAgICAgICAgIC8vIGxvb3AKICAgICAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwogICAgICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bG9vcHM7IGorKykgewogICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDEwMDAwMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChpc0x1Y2t5X2xvb3AoaSkpCiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydDsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJMb29wOiBuPSIgKyBjb3VudCArICIgdD0iICsgdGltZSArICJtcyIpOwogICAgICAgIH19CiAgICB9Cgp9Cg==