結果
| 問題 | No.2930 Larger Mex | 
| コンテスト | |
| ユーザー |  ID 21712 | 
| 提出日時 | 2025-03-19 02:33:41 | 
| 言語 | Go (1.23.4) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 401 ms / 2,000 ms | 
| コード長 | 684 bytes | 
| コンパイル時間 | 12,140 ms | 
| コンパイル使用メモリ | 238,248 KB | 
| 実行使用メモリ | 9,976 KB | 
| 最終ジャッジ日時 | 2025-03-19 02:34:14 | 
| 合計ジャッジ時間 | 30,885 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 50 | 
ソースコード
package main
import . "fmt"
import . "os"
import bf "bufio"
func main() {
	rd := bf.NewReader(Stdin)
	var n,m int
	Fscan(rd,&n,&m)
	a := make([]int, n)
	for i := range a {
		Fscan(rd,&a[i])
	}
	s := make([]int, n+2)
	f := make([]int, 2e5+1)
	cnt, l, r := 0, 0, 0
	f[a[0]]++
	if a[0] < m {
		cnt++
	}
	for l<n {
		if (cnt < m && r+1<=n) || (l > r) {
			r++
			if r < n {
				f[a[r]]++
				if a[r]<m&&f[a[r]]==1 {
					cnt++
				}
			}
		} else if l <= r {
			// Println("l=",l,", r=",r,", r-l+1=",r-l+1,",a[l:r]=",a[l:r])
			s[1]++
			s[r-l+1]--
			f[a[l]]--
			if a[l]<m&&f[a[l]]==0 {
				cnt--
			}
			l++
		}
	}
	x := 0
	for i,v := range s[1:][:n] {
		x += v
		Println(n-i-x)
	}
}
            
            
            
        