Skip to content

Commit d651274

Browse files
committed
Add silvers
1 parent af85d18 commit d651274

3 files changed

Lines changed: 101 additions & 14 deletions

File tree

boj/1010/main/main.go

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,30 @@ import (
55
"math/big"
66
)
77

8-
func fac(n big.Int, lim big.Int) *big.Int {
9-
var m = new(big.Int)
10-
if n.Cmp(&lim) <= 0 {
11-
return m.SetInt64(int64(1))
12-
8+
func fac(n *big.Int) *big.Int {
9+
if n.Cmp(big.NewInt(1)) <= 0 {
10+
return big.NewInt(1)
1311
}
14-
m.SetInt64(int64(1))
15-
m = n.Sub(&n, m)
16-
return n.Mul(&n, fac(*m, lim))
12+
13+
var m = big.NewInt(1)
14+
sub := new(big.Int)
15+
sub = sub.Sub(n, m)
16+
a := big.NewInt(1)
17+
return a.Mul(n, fac(sub))
1718
}
1819

1920
func main() {
2021
var t int
22+
2123
fmt.Scanf("%d", &t)
2224
for i := 0; i < t; i++ {
23-
var a, b big.Int
24-
fmt.Scanf("%d %d", &a, &b)
25-
fmt.Println(fac(b, a))
26-
var lim = new(big.Int)
27-
lim = lim.SetInt64(int64(1))
28-
fmt.Println(lim.Div(fac(b, a), fac(a, *lim)).Text(10))
25+
var n, k big.Int
26+
fmt.Scanf("%d %d", &k, &n)
27+
ans := new(big.Int)
28+
sub := new(big.Int)
29+
sub = sub.Sub(&n, &k)
30+
ans = ans.Div(fac(&n), ans.Mul(fac(&k), fac(sub)))
2931

32+
fmt.Println(ans.Text(10))
3033
}
3134
}

boj/1037/main/main.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"sort"
6+
)
7+
8+
func main() {
9+
var n int
10+
var y int
11+
var big uint64 = 1
12+
fmt.Scan(&n)
13+
a :=1
14+
var s []int
15+
if n == 0 {
16+
fmt.Println(1)
17+
return
18+
}
19+
if n == 1{
20+
fmt.Scan(&y)
21+
fmt.Println(y)
22+
}
23+
for i := 0; i < n; i++ {
24+
fmt.Scan(&y)
25+
big *= uint64(y)
26+
s = append(s, y)
27+
}
28+
sort.Ints(s)
29+
mostBig := uint64(s[len(s)-1])
30+
var i uint64 = mostBig
31+
var candis []uint64
32+
for ; i <= big; i += mostBig {
33+
candis = append(candis, mostBig)
34+
}
35+
36+
fmt.Println(a)
37+
}

boj/2167/retry/main.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
)
8+
9+
var reader = bufio.NewReader(os.Stdin)
10+
var writer = bufio.NewWriter(os.Stdout)
11+
12+
func main() {
13+
defer writer.Flush()
14+
var n, m int
15+
fmt.Fscan(reader, &n, &m)
16+
17+
arr := make([][]int, n)
18+
19+
for i := 0; i < n; i++ {
20+
arr[i] = make([]int, m)
21+
var num int
22+
fmt.Fscan(reader, &num)
23+
arr[i][0] = num
24+
for j := 1; j < m; j++ {
25+
fmt.Fscan(reader, &num)
26+
arr[i][j] = arr[i][j-1] + num
27+
}
28+
}
29+
30+
var k int
31+
fmt.Fscan(reader, &k)
32+
for i := 0; i < k; i++ {
33+
var x1, y1, x2, y2 int
34+
fmt.Fscan(reader, &x1, &y1, &x2, &y2)
35+
var sum int
36+
yFirst := y1-2
37+
yLast := y2-1
38+
for j := x1 - 1; j < x2; j++ {
39+
if yFirst == -1 {
40+
sum += arr[j][yLast]
41+
} else {
42+
sum += arr[j][yLast] - arr[j][yFirst]
43+
}
44+
}
45+
fmt.Fprintf(writer, "%d\n", sum)
46+
}
47+
}

0 commit comments

Comments
 (0)