| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int n = scanner.nextInt(), m = scanner.nextInt();        int[] shoot = new int[n];        for (int i = 0; i < n; i++) {            shoot[i] = scanner.nextInt();        }        int[] map = new int[m+1];        int min = -1, cnt = 0;        int l = 0, r = 0;        for (; r < n; r++) {            if (cnt == m) {                for (; l <= r && cnt == m; l++) {                    if (min == -1 || r-l < min) {                        min = r - l;                    }                    int c = shoot[l];                    if (c != 0) {                        map[c]--;                        if (map[c] == 0) {                            cnt--;                        }                    }                }            }            int c = shoot[r];            if (c != 0) {                if (map[c] == 0) {                    cnt++;                }                map[c]++;            }        }        if (cnt == m && (min == -1 || r-l < min)) {            min = r - l;        }        System.out.println(min);        scanner.close();    }}
 |