u'sã¨ã„ã†ã‚¹ã‚¯ãƒ¼ãƒ«ã‚¢ã‚¤ãƒ‰ãƒ«ã‚’çµæˆã—ãŸç§é”ã¯ï¼Œã•ã‚‰ãªã‚‹é«˜ã¿ã‚’目指ã™ãŸã‚,部室ã«ã‚ã£ãŸDVDã§æ†§ã‚Œã®841プãƒãƒ€ã‚¯ã‚·ãƒ§ãƒ³ã«æ‰€å±žã™ã‚‹ã‚¢ã‚¤ãƒ‰ãƒ«é”を見ã¦ã„ãŸï¼Ž ã“ã®ã‚¢ã‚¤ãƒ‰ãƒ«é”ã¯ä»Šã§ã“ãè¼ãステージã®ä¸Šã§æ´»èºã—ã¦ã„ã‚‹ãŒï¼Œä»¥å‰ã¯BYDOLã¨å‘¼ã°ã‚Œã‚‹ãƒãƒœãƒƒãƒˆã«ä¹—ã‚Šè¾¼ã¿ï¼Œéš•çŸ³ã®æ’¤åŽ»ä½œæ¥ã‚’ã—ã¦ã„ãŸã‚‰ã—ã„. ãã“ã§ï¼Œãƒˆãƒƒãƒ—アイドルã«ãªã‚‹ãŸã‚ã«ï¼ŒBYDOLã®æ“縦技術ãŒå¿…è¦ã§ã‚ã‚‹ã“ã¨ã‚’知ã£ãŸç§é”ã¯ï¼Œæ€¥é½BYDOLを入手ã—ï¼Œä»–æ ¡ã®ã‚¹ã‚¯ãƒ¼ãƒ«ã‚¢ã‚¤ãƒ‰ãƒ«ã¨BYDOLを用ã„ãŸæ¨¡æ“¬æˆ¦ã‚’ã™ã‚‹ã“ã¨ã«ã—ãŸï¼Ž
ã“ã®æ¨¡æ“¬æˆ¦ã§ã¯ï¼Œç™½ã®è»ã¨èµ¤ã®è»ã«åˆ†ã‹ã‚Œï¼ŒBYDOLã«ç©ã¾ã‚Œã¦ã„ã‚‹å¼¾ã«ã‚ˆã‚Šæ’ƒã¡åˆã„ã‚’è¡Œã†ï¼Ž å„è»ã®ãƒ¡ãƒ³ãƒã¯ï¼Œãã‚Œãžã‚ŒBYDOLã«ä¹—ã‚Šè¾¼ã¿ï¼Œåˆå›³ãŒå‡ºã‚‹ã¨åŒæ™‚ã«ã€Œ1度ã ã‘ã€å¼¾ã‚’æ’ƒã¤ï¼Ž åˆå›³ãŒå‡ºã‚‹æ™‚点ã§ã®å…¨ã¦ã®BYDOLã®åº§æ¨™ã¯æ±ºã¾ã£ã¦ãŠã‚Šï¼ŒBYDOLåŒå£«ã¯ãƒ¬ãƒ¼ãƒ€ãƒ¼ã«ã‚ˆã£ã¦äº’ã„ã®åº§æ¨™ã‚’把æ¡ã§ãる. åŒã˜åº§æ¨™ã«BYDOLãŒ2å°ä»¥ä¸Šç¾ã‚Œã‚‹ã“ã¨ã¯ãªã„.
BYDOLãŒç§»å‹•ã§ãるフィールドã¯2次元平é¢ã§è¡¨ã•ã‚Œï¼Œéžå¸¸ã«åºƒãフィールド全体を囲むå£ã¯ãªã„ã‚‚ã®ã¨ã—ã¦è€ƒãˆã‚‹ï¼Ž ã—ã‹ã—,フィールド内部ã«ã„ãã¤ã‹ã®å††å½¢ã®å£ãŒç”¨æ„ã•ã‚Œã¦ã„る. ã“ã®å£ã®å†…å´ã¯ï¼Œã‚³ãƒ³ã‚¯ãƒªãƒ¼ãƒˆã§å¡—り固ã‚られã¦ã„ã‚‹ãŸã‚,BYDOLãŒä¾µå…¥ã™ã‚‹ã“ã¨ã¯ã§ããªã„. å£ã‚’構æˆã™ã‚‹å††ã¯ï¼Œäº’ã„ã«æŽ¥ã—ãŸã‚Šäº¤å·®ã—ãŸã‚Šå†…包関係ã«ãªã£ãŸã‚Šã™ã‚‹ã“ã¨ã¯ãªã,BYDOLãŒã„る座標上ã«å£ã¯å˜åœ¨ã—ãªã„.
å„BYDOLã«ã¯ï¼Œåˆå›³ãŒå‡ºã‚‹æ™‚点ã§ä½ç½®ã™ã‚‹åº§æ¨™ï¼Œå°„程,1度ã«ç™ºå°„ã§ãる弾数,å£ã§åå°„ã™ã‚‹å¼¾ã‚’ç©ã‚“ã§ã„ã‚‹ã‹ï¼Œå€’ã•ã‚ŒãŸæ™‚ã«æ•µè»ãŒå¾—る点数ã®5ã¤ã®ãƒ‘ラメータãŒè¨å®šã•ã‚Œã¦ã„る.
å¼¾ã¯ï¼ŒBYDOLãŒã„ã‚‹ä½ç½®ã‹ã‚‰360度ã©ã®æ–¹å‘ã¸ã‚‚発射ã™ã‚‹ã“ã¨ãŒã§ã,一直線状ã«é€²ã‚€ï¼Ž 発射ã•ã‚Œã¦ã‹ã‚‰é€²ã‚“ã å¼¾ã®è·é›¢ãŒå°„程ã®å€¤ä»¥ä¸‹ã§ã‚る間,ã‹ã¤ä»–ã®BYDOLã‚„å£ã«å¼¾ãŒå½“ãŸã‚‰ãªã„é–“ã§ã‚ã‚Œã°ï¼Œå¼¾ã¯é€²ã¿ç¶šã‘る. フィールド上を動ãå…¨ã¦ã®å¼¾ã¯ï¼Œå¼¾é“ãŒäº¤å·®ã—ã¦ã„ã¦ã‚‚è¡çªã—ãªã„ã‚‚ã®ã¨ã™ã‚‹ï¼Ž
BYDOLã«ã‚ˆã£ã¦ã¯å£ã§åå°„ã™ã‚‹å¼¾ã‚’ç©ã‚“ã§ã„ã‚‹å ´åˆãŒã‚る. ã“ã®å ´åˆã®BYDOLã®å¼¾ã¯å…¨ã¦ï¼Œ1回ã®ã¿å£ã§åå°„ã™ã‚‹ï¼Ž ãŸã ã—,自分ã®BYDOLã‹ã‚‰å£ã®åå°„ã—ãŸåœ°ç‚¹ã¾ã§ã®è·é›¢ã¨ï¼Œåå°„ã—ãŸåœ°ç‚¹ã‹ã‚‰ç›¸æ‰‹ã®BYDOLã¾ã§ã®è·é›¢ã®åˆè¨ˆãŒï¼Œå°„程ã®å€¤ä»¥ä¸‹ã§ãªã‘ã‚Œã°ï¼Œç›¸æ‰‹ã«å½“ãŸã£ãŸã“ã¨ã«ã¯ãªã‚‰ãªã„. å£ã§åå°„ã™ã‚‹ã¨ãã¯å›³1ã®ã‚ˆã†ã«ï¼Œå¼¾ãŒå£ã«å½“ãŸã£ãŸåœ°ç‚¹ã«å¯¾ã—ã¦æŽ¥ç·šã‚’引ã,ã“ã®ç·šã‚’基準ã«å…¥å°„角θ1ã¨å射角θ2ãŒç‰ã—ããªã‚‹ã‚ˆã†ã«åå°„ã™ã‚‹ï¼Ž å¼¾é“ãŒå£ã‚’構æˆã™ã‚‹å††ã«æŽ¥ã™ã‚‹å ´åˆï¼Œãã®ã¾ã¾ã¾ã£ã™ãå¼¾ã¯é€²ã¿ï¼Œå£ã§åå°„ã—ãŸã“ã¨ã«ã¯ãªã‚‰ãªã„.
図1: å¼¾ã®åå°„
ã‚ã‚‹BYDOLã¯ï¼Œç™ºå°„ã§ãる弾数ã®ç¯„囲ã§ï¼Œ1度ã«è¤‡æ•°ã®å¼¾ã‚’æ’ƒã¡ï¼Œè¤‡æ•°ã®BYDOLã«å½“ã¦ã‚‹ã“ã¨ãŒã§ãる.ãŸã ã—,åŒã˜BYDOLãŒï¼Œå…¨ãåŒã˜æ–¹å‘ã¸å‘ã‹ã£ã¦å¼¾ã‚’2発以上撃ã¤ã“ã¨ã¯è¨±ã•ã‚Œãªã„.
å„BYDOLã«ã¯ï¼Œå€’ã•ã‚ŒãŸæ™‚ã«æ•µè»ãŒå¾—る点数ãŒè¨å®šã•ã‚Œã¦ã„る. ã“ã®æ’ƒã¡åˆã„ã§ã¯ï¼Œã‚ˆã‚Šå¤šãã®ç‚¹æ•°ã‚’å¾—ãŸè»ãŒå‹è€…ã¨ãªã‚‹ï¼Ž åŒã˜ç‚¹æ•°ã‚’å¾—ãŸå ´åˆã¯ï¼Œå¼•ã分ã‘ã¨ã™ã‚‹ï¼Ž BYDOLã¯1発弾を当ã¦ã‚Œã°å€’れるãŸã‚,åŒã˜BYDOLã«ä½•ç™ºæ’ƒã¡è¾¼ã‚‚ã†ãŒï¼Œå¾—られる点数ã¯1度ãã‚Šã§ã‚る. 味方ã®BYDOLã‚’æ’ƒã£ãŸå ´åˆï¼Œå¤±æ ¼ã«ãªã£ã¦ã—ã¾ã†ãŸã‚絶対ã«æ’ƒã£ã¦ã¯ã„ã‘ãªã„. 自滅ã™ã‚‹ã“ã¨ã‚‚許ã•ã‚Œãªã„.
u'sã«ãŠã‘る作戦指æ®æ‹…当ã§ã‚ã‚‹ã‚ãªãŸã®ä»•äº‹ã¯ï¼Œå„è»ãŒæœ€å¤§ã®ç‚¹æ•°ã‚’ã¨ã‚Œã‚‹ã‚ˆã†ã«è¡Œå‹•ã—ãŸã¨ãã®ç‚¹æ•°ã‚’求ã‚,ã©ã¡ã‚‰ã®è»ãŒå‹ã¤ã“ã¨ãŒã§ãã‚‹ã®ã‹ã‚’判定ã™ã‚‹ã“ã¨ã§ã‚る. ã“ã‚ŒãŒã§ãã‚Œã°ï¼Œu'sã¯ãƒˆãƒƒãƒ—アイドルã¸ä¸€æ©è¿‘ã¥ãã“ã¨ãŒã§ãã‚‹ã ã‚ã†ï¼Ž
入力ã¯æ¬¡ã®å½¢å¼ã§è¡¨ã•ã‚Œã‚‹ï¼Ž
å…¨ã¦ã®æ•°å€¤ã¯æ•´æ•°ã§å…¥åŠ›ã•ã‚Œã‚‹ï¼Ž n, m (1 ≦ n, m ≦ 50) ã¯ç™½ã®è»ã¨èµ¤ã®è»ã®BYDOLã®æ•°ï¼Œo (0 ≦ o ≦ 15) ã¯å£ã®æ•°ã‚’表ã™ï¼Ž axi, ayi (0 ≦ axi, ayi ≦ 100) ã¯i番目ã®ç™½ã®è»ã®BYDOLã®åº§æ¨™ï¼Œapi (0 ≦ api ≦ 200) ã¯å°„程,aqi (1 ≦ aqi ≦ 5) ã¯1度ã«ç™ºå°„ã§ãã‚‹å¼¾ã®æ•°ï¼Œari (0 <= ari <= 1) ã¯å£ã§åå°„ã™ã‚‹å¼¾ã‚’ç©ã‚“ã§ã„ã‚‹ã‹ã©ã†ã‹ï¼Œasi (0≦ asi ≦ 100) ã¯å€’ã•ã‚ŒãŸæ™‚ã«ï¼Œæ•µè»ãŒå¾—る点数ã§ã‚る. ari ãŒï¼Œ0ã§ã‚ã‚‹ã¨ãã¯æ‰€æŒã—ã¦ã„ã‚‹å¼¾ãŒåå°„ã§ããªã„ã“ã¨ï¼Œ1ã§ã‚ã‚‹ã¨ãã¯åå°„ã§ãã‚‹ã“ã¨ã‚’表ã—ã¦ã„る. 赤ã®è»ã®BYDOLã®æƒ…å ±ã‚‚åŒæ§˜ã«ä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž
ãã®å¾Œï¼Œå£ã®ä¸å¿ƒåº§æ¨™(wxi, wyi)ã¨åŠå¾„ wri ãŒä¸Žãˆã‚‰ã‚Œã‚‹(0 ≦ wxi, wyi ≦ 100, 1 ≦ wri ≦ 30) .
白ã®è»ã¨èµ¤ã®è»ãã‚Œãžã‚ŒãŒï¼Œæœ€ã‚‚点数ãŒå¾—られるよã†ã«å¼¾ã‚’発射ã—ãŸã¨ãã®ç‚¹æ•°ã‚’空白区切りã§1行目ã«å‡ºåŠ›ã›ã‚ˆï¼Ž ã•ã‚‰ã«ï¼Œç™½ã®è»ãŒå‹ã¤å ´åˆã¯winï¼Œè² ã‘ã‚‹å ´åˆã¯lose,引ã分ã‘ã®å ´åˆã¯drawã‚’2行目ã«å‡ºåŠ›ã›ã‚ˆï¼Ž 出力ã«ã¯ï¼Œã“れら以外ã®æ–‡å—ãŒã‚ã£ã¦ã¯ãªã‚‰ãªã„.
2 2 0 0 0 5 1 0 0 1 0 5 1 0 0 0 1 5 1 0 10 1 1 5 1 0 10
20 0 win
2 3 0 0 0 5 1 0 20 1 0 5 1 0 10 10 10 4 1 0 100 10 0 1 1 0 50 4 0 5 1 0 10
10 10 draw
1 1 2 0 0 20 1 1 20 10 0 20 1 0 20 5 0 2 5 8 2
20 0 win
1 1 1 0 0 5 1 0 5 5 0 5 1 0 10 1 1 1
10 5 win
1 2 5 13 27 19 4 0 30 14 14 34 4 1 9 49 71 21 3 1 31 5 86 18 85 27 3 90 91 1 34 50 10 92 54 15
9 30 lose