今,Gâ—‹â—‹gle Code Jam ã®åœ°åŒºå¤§ä¼šãŒå§‹ã¾ã‚ã†ã¨ã—ã¦ã„る. å·¦ã®å¸ã«åº§ã£ã¦ã„ã‚‹ç”·ã® ID 㯠wata ã¨è¨€ã†ã‚‰ã—ã„. æ±äº¬å¤§å¦æ™‚代ã®è¨˜æ†¶ã«ï¼Œä¼¼ãŸã‚ˆã†ãª ID ã®ä»²é–“ãŒå±…ãŸè¦šãˆãŒã‚る. ã—ã‹ã—,僕ã®ä»²é–“ã¯ä¸€äººæ®‹ã•ãšç¾Žå°‘女ã ã£ãŸã¯ãšã .
僕ã®è¨˜æ†¶ã®ä¸ã® wata ã¯ï¼Œãƒžãƒˆãƒã‚¤ãƒ‰ãŒå¥½ãã ã£ãŸï¼Ž 特ã«ï¼Œãƒžãƒˆãƒã‚¤ãƒ‰äº¤å·®ãŒå¤§å¥½ãã§ï¼Œ 様々ãªãƒžãƒˆãƒã‚¤ãƒ‰é”を交差ã•ã›ã‚‹ã“ã¨ã«ä¸€ç¨®ã®èˆˆå¥®ã™ã‚‰è¦šãˆã‚‹ã¨è¨€ã†å°‘ã—変ã‚ã£ãŸå¥´ã ã£ãŸï¼Ž
マトãƒã‚¤ãƒ‰ã®ç†è«–ã®åŠ›ã‚’使ãˆã°ï¼Œ 与ãˆã‚‰ã‚ŒãŸã‚°ãƒ©ãƒ•ä¸Šã§è¾ºã‚’共有ã—ãªã„複数ã®å…¨åŸŸæœ¨ã‚’求ã‚ã‚‹ã“ã¨ã¯ã¨ã¦ã‚‚ç°¡å˜ãªå•é¡Œã ã¨è¨€ã£ã¦ã„ãŸæ°—ãŒã™ã‚‹ï¼Ž ã—ã‹ã—,特別ãªã‚°ãƒ©ãƒ•ã«é–¢ã—ã¦ã¯ï¼Œ マトãƒã‚¤ãƒ‰ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ を直接ã«é©ç”¨ã™ã‚‹ã‚ˆã‚Šã‚‚高速ãªã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒã‚ã‚‹ã®ã§ã¯ãªã„ã‹ï¼Ÿ
N 個ã®é ‚点ã‹ã‚‰ãªã‚‹å®Œå…¨ã‚°ãƒ©ãƒ•ã«ãŠã„ã¦ï¼Œ 辺を共有ã—ãªã„全域木を K 個作æˆã›ã‚ˆï¼Ž
完全グラフã¨ã¯ï¼Œå…¨ã¦ã®ç›¸ç•°ãªã‚‹ 2 é ‚ç‚¹é–“ã« 1 本ã®è¾ºã‚’æŒã¤ã‚°ãƒ©ãƒ•ã§ã‚る. 下図ã¯ï¼Œ4 é ‚ç‚¹ã®å®Œå…¨ã‚°ãƒ©ãƒ•ã®ä¾‹ã§ã‚る.
4 é ‚ç‚¹ã®å®Œå…¨ã‚°ãƒ©ãƒ•ï¼Ž
全域木ã¨ã¯ï¼Œå…ƒã®ã‚°ãƒ©ãƒ•ã®å…¨ã¦ã®é ‚点ã¨ä¸€éƒ¨ã®è¾ºã‹ã‚‰ãªã‚‹æœ¨ã®ã“ã¨ã§ã‚る. 木ã¨ã¯ï¼Œé€£çµã‹ã¤é–‰è·¯ã‚’æŒãŸãªã„グラフã®ã“ã¨ã§ã‚る. 下図ã¯ï¼Œ4 é ‚ç‚¹ã®å®Œå…¨ã‚°ãƒ©ãƒ•ã«ãŠã‘る,辺を共有ã—ãªã„ 2 ã¤ã®å…¨åŸŸæœ¨ã§ã‚る.
4 é ‚ç‚¹ã®å®Œå…¨ã‚°ãƒ©ãƒ•ã®å…¨åŸŸæœ¨ã®ä¾‹ï¼Ž
4 é ‚ç‚¹ã®å®Œå…¨ã‚°ãƒ©ãƒ•ã®å…¨åŸŸæœ¨ã§ã‚り,å‰ã®ä¾‹ã¨è¾ºã‚’共有ã—ãªã„ã‚‚ã®ï¼Ž
入力㯠1 è¡Œã‹ã‚‰ãªã‚Šï¼Œ 2 ã¤ã®æ•´æ•° N, K ãŒæ›¸ã‹ã‚Œã¦ã„る.
æ¡ä»¶ã‚’満ãŸã™ K 個ã®å…¨åŸŸæœ¨ã‚’作るã“ã¨ãŒã§ããªã„時,-1 ã¨ã ã‘出力ã›ã‚ˆï¼Ž
æ¡ä»¶ã‚’満ãŸã™ K 個ã®å…¨åŸŸæœ¨ã‚’作るã“ã¨ãŒã§ãる時, K 個ã®å…¨åŸŸæœ¨ã‚’改行ã§åŒºåˆ‡ã‚Šå‡ºåŠ›ã›ã‚ˆï¼Ž 1 ã¤ã®å…¨åŸŸæœ¨ã¯ N - 1 è¡Œã§è¡¨ã•ã‚Œã‚‹ï¼Ž ãã® i 行目ã«ã¯ï¼Œãã®å…¨åŸŸæœ¨ã®è¾º i ãŒçµã¶ 2 ã¤ã®é ‚点を表㙠2 ã¤ã®æ•´æ•°ã‚’スペースã§åŒºåˆ‡ã‚Šå‡ºåŠ›ã™ã‚‹ï¼Ž ã“ã“ã§ï¼Œé ‚点㯠1 ã‹ã‚‰ N ã¾ã§ã®æ•´æ•°ã§è¡¨ã™ã‚‚ã®ã¨ã™ã‚‹ï¼Ž
ã“ã®å•é¡Œã®åˆ¤å®šã«ã¯ï¼Œ20 点分ã®ãƒ†ã‚¹ãƒˆã‚±ãƒ¼ã‚¹ã®ã‚°ãƒ«ãƒ¼ãƒ—ãŒè¨å®šã•ã‚Œã¦ã„る. ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å«ã¾ã‚Œã‚‹ãƒ†ã‚¹ãƒˆã‚±ãƒ¼ã‚¹ã®å…¥åŠ›ã¯ä»¥ä¸‹ã‚’満ãŸã™ï¼Ž
入力例 1:
4 2
入力例 1 ã«å¯¾ã™ã‚‹å‡ºåŠ›ã®ä¾‹:
1 2 1 4 2 3 1 3 2 4 3 4
ã“ã®å…¥å‡ºåŠ›ä¾‹ã¯å•é¡Œæ–‡ä¸ã®å›³ã¨å¯¾å¿œã—ã¦ã„る.
入力例 2:
4 3
入力例 2 ã«å¯¾ã™ã‚‹å‡ºåŠ›ã®ä¾‹:
-1