結果
| 問題 | 
                            No.216 FAC
                             | 
                    
| コンテスト | |
| ユーザー | 
                             norioc
                         | 
                    
| 提出日時 | 2015-07-22 23:46:38 | 
| 言語 | Go  (1.23.4)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 5 ms / 1,000 ms | 
| コード長 | 611 bytes | 
| コンパイル時間 | 11,146 ms | 
| コンパイル使用メモリ | 231,008 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-10-15 00:39:57 | 
| 合計ジャッジ時間 | 12,032 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 24 | 
ソースコード
package main
import (
	"fmt"
)
func main() {
	var n int
	fmt.Scanf("%d", &n)
	as := make([]int, n)
	bs := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scanf("%d", &as[i])
	}
	for i := 0; i < n; i++ {
		fmt.Scanf("%d", &bs[i])
	}
	score := 0             // 誰にも解かれていない問題のスコア合計
	d := make(map[int]int) // <人, 得点>
	for i := 0; i < n; i++ {
		if bs[i] == 0 {
			score += as[i]
		} else {
			d[bs[i]] += as[i]
		}
	}
	win := true
	for _, v := range d {
		if v > score {
			win = false
			break
		}
	}
	if win {
		fmt.Println("YES")
	} else {
		fmt.Println("NO")
	}
}
            
            
            
        
            
norioc