Submission #62983176


Source Code Expand

package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

func main() { solveE(os.Stdin, os.Stdout) }

func solveE(_r io.Reader, _w io.Writer) {
	in, out := bufio.NewReader(_r), bufio.NewWriter(_w)
	defer out.Flush()

	n, k := readTwoNums(in)
	a := readNNums(in, n)

	const M int = 1e6 + 5
	cnt, cntFact := [M]int{}, [M]int{}
	for _, v := range a {
		cnt[v]++
	}
	facts := [M][]int{}
	for i := 1; i < M; i++ {
		for j := i; j < M; j += i {
			cntFact[i] += cnt[j]
			facts[j] = append(facts[j], i)
		}
	}

	for _, v := range a {
		res := 1
		for _, f := range facts[v] {
			if cntFact[f] >= k {
				res = f
			}
		}
		fmt.Fprintln(out, res)
	}
}

func solveD(_r io.Reader, _w io.Writer) {
	in, out := bufio.NewReader(_r), bufio.NewWriter(_w)
	defer out.Flush()

	readNum(in)
	s := readString(in)
	idx1 := []int{}
	for i, ch := range s {
		if ch == '1' {
			idx1 = append(idx1, i)
		}
	}
	m := len(idx1)
	idx2 := make([]int, m)
	idx2[m/2] = idx1[m/2]
	for i := m/2 - 1; i >= 0; i-- {
		idx2[i] = idx2[i+1] - 1
	}
	for i := m/2 + 1; i < m; i++ {
		idx2[i] = idx2[i-1] + 1
	}
	ans := 0
	for i := 0; i < m; i++ {
		ans += abs(idx1[i] - idx2[i])
	}
	fmt.Fprintln(out, ans)
}

func solveC(_r io.Reader, _w io.Writer) {
	in, out := bufio.NewReader(_r), bufio.NewWriter(_w)
	defer out.Flush()

	_, m := readTwoNums(in)
	type pair struct{ x, y int }
	mp := map[pair]struct{}{}
	ans := 0
	for i := 0; i < m; i++ {
		u, v := readTwoNums(in)
		u, v = min(u, v), max(u, v)
		if _, ok := mp[pair{u, v}]; ok || u == v {
			ans++
		} else {
			mp[pair{u, v}] = struct{}{}
		}
	}
	fmt.Fprintln(out, ans)
}

func abs(x int) int {
	if x < 0 {
		return -x
	}
	return x
}

func max(a, b int) int {
	if a >= b {
		return a
	}
	return b
}

func min(a, b int) int {
	if a <= b {
		return a
	}
	return b
}

func readString(reader *bufio.Reader) string {
	s, _ := reader.ReadString('\n')
	for i := 0; i < len(s); i++ {
		if s[i] == '\n' || s[i] == '\r' {
			return s[:i]
		}
	}
	return s
}

func readInt(bytes []byte, from int, val *int) int {
	i := from
	sign := 1
	if bytes[i] == '-' {
		sign = -1
		i++
	}
	tmp := 0
	for i < len(bytes) && bytes[i] >= '0' && bytes[i] <= '9' {
		tmp = tmp*10 + int(bytes[i]-'0')
		i++
	}
	*val = tmp * sign
	return i
}

func readNum(reader *bufio.Reader) (a int) {
	bs, _ := reader.ReadBytes('\n')
	readInt(bs, 0, &a)
	return
}

func readTwoNums(reader *bufio.Reader) (a int, b int) {
	res := readNNums(reader, 2)
	a, b = res[0], res[1]
	return
}

func readThreeNums(reader *bufio.Reader) (a int, b int, c int) {
	res := readNNums(reader, 3)
	a, b, c = res[0], res[1], res[2]
	return
}

func readNNums(reader *bufio.Reader, n int) []int {
	res := make([]int, n)
	x := 0
	bs, _ := reader.ReadBytes('\n')
	for i := 0; i < n; i++ {
		for x < len(bs) && (bs[x] < '0' || bs[x] > '9') && bs[x] != '-' {
			x++
		}
		x = readInt(bs, x, &res[i])
	}
	return res
}

Submission Info

Submission Time
Task E - GCD of Subset
User xylu
Language Go (go 1.20.6)
Score 475
Code Size 3027 Byte
Status AC
Exec Time 1189 ms
Memory 284212 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 35
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_a_distinct_00.txt, 02_a_distinct_01.txt, 02_a_distinct_02.txt, 02_a_distinct_03.txt, 02_a_distinct_04.txt, 03_a_max_00.txt, 03_a_max_01.txt, 03_a_max_02.txt, 03_a_max_03.txt, 03_a_max_04.txt, 03_a_max_05.txt, 03_a_max_06.txt, 04_hcn_00.txt, 04_hcn_01.txt, 04_hcn_02.txt, 04_hcn_03.txt, 04_hcn_04.txt, 04_hcn_05.txt, 04_hcn_06.txt, 04_hcn_07.txt, 04_hcn_08.txt, 05_corner_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 726 ms 253136 KiB
00_sample_01.txt AC 716 ms 255252 KiB
00_sample_02.txt AC 693 ms 254180 KiB
01_random_00.txt AC 1024 ms 273656 KiB
01_random_01.txt AC 1171 ms 276436 KiB
01_random_02.txt AC 1130 ms 277436 KiB
01_random_03.txt AC 1189 ms 275880 KiB
01_random_04.txt AC 1108 ms 276344 KiB
01_random_05.txt AC 1181 ms 276288 KiB
01_random_06.txt AC 946 ms 274048 KiB
01_random_07.txt AC 1131 ms 277196 KiB
01_random_08.txt AC 1055 ms 277504 KiB
01_random_09.txt AC 1153 ms 276528 KiB
02_a_distinct_00.txt AC 965 ms 280424 KiB
02_a_distinct_01.txt AC 994 ms 280628 KiB
02_a_distinct_02.txt AC 972 ms 279920 KiB
02_a_distinct_03.txt AC 936 ms 275324 KiB
02_a_distinct_04.txt AC 981 ms 278948 KiB
03_a_max_00.txt AC 890 ms 281844 KiB
03_a_max_01.txt AC 869 ms 275444 KiB
03_a_max_02.txt AC 896 ms 281116 KiB
03_a_max_03.txt AC 910 ms 280880 KiB
03_a_max_04.txt AC 771 ms 276524 KiB
03_a_max_05.txt AC 900 ms 284212 KiB
03_a_max_06.txt AC 890 ms 284004 KiB
04_hcn_00.txt AC 1032 ms 282128 KiB
04_hcn_01.txt AC 1042 ms 282528 KiB
04_hcn_02.txt AC 1017 ms 282592 KiB
04_hcn_03.txt AC 1069 ms 281112 KiB
04_hcn_04.txt AC 990 ms 282200 KiB
04_hcn_05.txt AC 1052 ms 281728 KiB
04_hcn_06.txt AC 1013 ms 280576 KiB
04_hcn_07.txt AC 958 ms 281404 KiB
04_hcn_08.txt AC 973 ms 281456 KiB
05_corner_00.txt AC 737 ms 254716 KiB