public class Main {
public static final long MOD = 1000000007;
public static void main
(String[] args
) { fib1(10000000);
fib2(10000000);
}
public static void fib1(int n) {
long stime
= System.
nanoTime(); long[] fib = new long[n+1];
fib[0] = 0; fib[1] = 1;
for(int i=2;i<=n;i++) {
fib[i] = (fib[i-2] + fib[i-1]) % MOD;
}
System.
out.
println((System.
nanoTime() - stime
) / 1000000 + " ms"); }
public static void fib2(int n) {
long stime
= System.
nanoTime(); long[] fib = new long[n+1];
fib[0] = 0; fib[1] = 1;
for(int i=2;i<=n;i++) {
fib[i] = fib[i-2] + fib[i-1];
if (fib[i] >= MOD) fib[i] -= MOD;
}
System.
out.
println((System.
nanoTime() - stime
) / 1000000 + " ms"); }
}
cHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIE1PRCA9IDEwMDAwMDAwMDc7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJZmliMSgxMDAwMDAwMCk7CgkJZmliMigxMDAwMDAwMCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWIxKGludCBuKSB7CgkJbG9uZyBzdGltZSA9IFN5c3RlbS5uYW5vVGltZSgpOwoJCWxvbmdbXSBmaWIgPSBuZXcgbG9uZ1tuKzFdOwoJCWZpYlswXSA9IDA7IGZpYlsxXSA9IDE7CgkJZm9yKGludCBpPTI7aTw9bjtpKyspIHsKCQkJZmliW2ldID0gKGZpYltpLTJdICsgZmliW2ktMV0pICUgTU9EOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oKFN5c3RlbS5uYW5vVGltZSgpIC0gc3RpbWUpIC8gMTAwMDAwMCArICIgbXMiKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oZmliW25dKTsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBmaWIyKGludCBuKSB7CgkJbG9uZyBzdGltZSA9IFN5c3RlbS5uYW5vVGltZSgpOwoJCWxvbmdbXSBmaWIgPSBuZXcgbG9uZ1tuKzFdOwoJCWZpYlswXSA9IDA7IGZpYlsxXSA9IDE7CgkJZm9yKGludCBpPTI7aTw9bjtpKyspIHsKCQkJZmliW2ldID0gZmliW2ktMl0gKyBmaWJbaS0xXTsKCQkJaWYgKGZpYltpXSA+PSBNT0QpIGZpYltpXSAtPSBNT0Q7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigoU3lzdGVtLm5hbm9UaW1lKCkgLSBzdGltZSkgLyAxMDAwMDAwICsgIiBtcyIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihmaWJbbl0pOwoJfQp9Cg==