/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone{
public static void main
(String[] args
) { int[] a = new int[]{100, 2, 3, 1, 4, -10, 5, 10, 21, 6, 8, -2020, 2000000000, 2000000001};
System.
out.
println(findFirstMissingPositive
(a
));
a = new int[]{2, 3, 1, 4, 6, 5, 7};
System.
out.
println(findFirstMissingPositive
(a
)); }
static int findFirstMissingPositive(int[] a) {
int n = a.length;
boolean[] was = new boolean[n];
for (int v : a) {
if (v > 0 && v <= n) {
was[v - 1] = true;
}
}
for (int i = 0; i < n; i++) {
if (!was[i]) return i + 1;
}
return n + 1;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIGludFtdIGEgPSBuZXcgaW50W117MTAwLCAyLCAzLCAxLCA0LCAtMTAsIDUsIDEwLCAyMSwgNiwgOCwgLTIwMjAsIDIwMDAwMDAwMDAsIDIwMDAwMDAwMDF9OwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmaW5kRmlyc3RNaXNzaW5nUG9zaXRpdmUoYSkpOwogICAgICAgIAogICAgICAgIGEgPSBuZXcgaW50W117MiwgMywgMSwgNCwgNiwgNSwgN307CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZpbmRGaXJzdE1pc3NpbmdQb3NpdGl2ZShhKSk7CiAgICB9CiAgICAKICAgIHN0YXRpYyBpbnQgZmluZEZpcnN0TWlzc2luZ1Bvc2l0aXZlKGludFtdIGEpIHsKICAgICAgICBpbnQgbiA9IGEubGVuZ3RoOwogICAgICAgIGJvb2xlYW5bXSB3YXMgPSBuZXcgYm9vbGVhbltuXTsKCiAgICAgICAgZm9yIChpbnQgdiA6IGEpIHsKICAgICAgICAgICAgaWYgKHYgPiAwICYmIHYgPD0gbikgewogICAgICAgICAgICAgICAgd2FzW3YgLSAxXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGlmICghd2FzW2ldKSByZXR1cm4gaSArIDE7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbiArIDE7CiAgICB9Cn0=