結果
問題 | No.346 チワワ数え上げ問題 |
ユーザー |
|
提出日時 | 2016-02-27 17:17:50 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 72 ms / 2,000 ms |
コード長 | 782 bytes |
コンパイル時間 | 12,627 ms |
コンパイル使用メモリ | 234,492 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-10 22:58:53 |
合計ジャッジ時間 | 13,292 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
package mainimport ("bufio""fmt""os""regexp""strings")var rdr = bufio.NewReaderSize(os.Stdin, 1000000)func main() {s := readLine()r := regexp.MustCompile(`[^cw]`)s = r.ReplaceAllString(s, "")t := 0for i, v := range s {if v != 'c' {continue}w := strings.Count(s[i+1:], "w")if w < 2 {break}t += ncr(w, 2)}fmt.Println(t)}func ncr(n, r int) int {if n < 0 || r < 0 || r > n {return 0}k := rif k > n/2 {k = n - r}ret := int(1)for i := int(1); i <= k; i++ {ret *= n - i + 1ret /= i}return ret}func readLine() string {buf := make([]byte, 0, 1000000)for {l, p, e := rdr.ReadLine()if e != nil {panic(e)}buf = append(buf, l...)if !p {break}}return string(buf)}