百人一首ã¯æ—¥æœ¬ã®ä¼çµ±çš„ãªã‚²ãƒ¼ãƒ ã§ã‚る. ã“ã®ã‚²ãƒ¼ãƒ ã§ã¯ N æžšã®ã‚«ãƒ¼ãƒ‰ãŒç”¨ã„られ,ãã‚Œãžã‚Œã®ã‚«ãƒ¼ãƒ‰ã«ã¯1ã¤ã®æ–‡å—列ãŒæ›¸ã‹ã‚Œã¦ã„る.細ã‹ã„ルールã¯çœç•¥ã™ã‚‹ãŒï¼Œ Aå›ã¯ N æžšã®ã‚«ãƒ¼ãƒ‰ã«æ›¸ã‹ã‚Œã¦ã„ã‚‹æ–‡å—列を何らã‹ã®é †åºã§ãã‚Œãžã‚Œã¡ã‚‡ã†ã©1回ãšã¤èªã‚€ã“ã¨ã«ãªã£ãŸï¼Ž
百人一首ã§ã¯ãã®æŽ¥é 辞ãŒéžå¸¸ã«é‡è¦ã§ã‚る.百人一首ã§ä½¿ç”¨ã•ã‚Œã‚‹æ–‡å—列ã¨ã—ã¦æŽ¥é 辞ã¯ä¼¼ã¦ã„る言葉ãŒå¤šã, 連続ã—ã¦ä¼¼ãŸã‚ˆã†ãªæ–‡å—列をèªã‚€ã¨Aå›ã‚‚æ··ä¹±ã—ã¦ã—ã¾ã†ï¼Ž ãã“ã§Aå›ã¯ï¼Œé€£ç¶šã™ã‚‹äºŒã¤ã®ã‚«ãƒ¼ãƒ‰ã®æ–‡å—列ã®æŽ¥é 辞ãŒã§ãã‚‹ã ã‘ç•°ãªã‚‹ã‚ˆã†ã«ï¼Œã‚«ãƒ¼ãƒ‰ã‚’並ã¹æ›¿ãˆã‚ˆã†ã¨è€ƒãˆãŸï¼Ž
Aå›ã®ç›®æ¨™ã¯ï¼Œã€Œå±±æœã®èªã¿ã‚„ã™ã•ã€ã¨å‘¼ã°ã‚Œã‚‹æŒ‡æ¨™ã‚’最å°åŒ–ã™ã‚‹ã‚ˆã†ãªå±±æœã‚’求ã‚ã‚‹ã“ã¨ã§ã‚る.ã“ã“ã§å±±æœã¨ã¯ï¼Œã“ã®ç™¾äººä¸€é¦–ã§èªã¾ã‚Œã‚‹ N æžšã®ã‚«ãƒ¼ãƒ‰ã‚’並ã¹æ›¿ãˆãŸã‚‚ã®ã‚’指ã™ï¼Žå±±æœã®èªã¿ã‚„ã™ã•ã¨ã¯ï¼Œå±±æœå†…ã«ã‚る隣接ã—ãŸã‚«ãƒ¼ãƒ‰ã®é¡žä¼¼åº¦ã®ç·å’Œã‚’言ã†ï¼Ž2 æžšã®ã‚«ãƒ¼ãƒ‰ã®é¡žä¼¼åº¦ã¯ãれらã«æ›¸ã‹ã‚ŒãŸæ–‡å—列ã©ã†ã—ã®æœ€é•·å…±é€šæŽ¥é 辞ã®é•·ã•ã¨ã—ã¦å®šç¾©ã•ã‚Œã‚‹ï¼ŽãªãŠï¼Œæ–‡å—列 t 㨠u ã®æœ€é•·å…±é€šæŽ¥é 辞ã¨ã¯ï¼Œt 㨠u 両方ã®æŽ¥é 辞ã§ã‚るよã†ãªæ–‡å—列ã®ã†ã¡ï¼Œæœ€é•·ã®ã‚‚ã®ã‚’指ã™ï¼Ž
例ãˆã°ï¼Œ2 æžšã®ã‚«ãƒ¼ãƒ‰ã«æ›¸ã‹ã‚ŒãŸæ–‡å—列ãŒãã‚Œãžã‚Œ "jag" 㨠"japan" ã§ã‚ã‚Œã°ï¼Œã“れらã®ã‚«ãƒ¼ãƒ‰ã®é¡žä¼¼åº¦ã¯ 2 ã§ã‚る.一方,"wan" 㨠"nyan" ã§ã‚ã‚Œã°é¡žä¼¼åº¦ã¯ 0 ã§ã‚る.
ã¨ã“ã‚ã§ï¼Œã€Œå±±æœã®èªã¿ã‚„ã™ã•ã€ãŒæœ€å°ã¨ãªã‚‹å±±æœã¯è¤‡æ•°å˜åœ¨ã™ã‚‹ã‹ã‚‚ã—ã‚Œãªã„.Aå›ã¯ï¼Œæœ€å°è§£ã¨ã—ã¦ã‚ã‚Šã†ã‚‹å±±æœã®ã†ã¡ï¼Œè¾žæ›¸é †æœ€å°ã®å±±æœã‚’求ã‚ãŸã„.ã“ã“ã§ï¼Œå±±æœ P 㨠Q ã«ã¤ã„㦠P ãŒè¾žæ›¸é †ã§å°ã•ã„ã¨ã¯ï¼Œã‚ã‚‹æ£ã®æ•´æ•° i ãŒå˜åœ¨ã—ã¦ï¼Œ1 番目ã‹ã‚‰ i-1 番目ã®ã‚«ãƒ¼ãƒ‰ã¾ã§ã¯ãã‚Œãžã‚ŒåŒä¸€ã®ã‚«ãƒ¼ãƒ‰ã§ã‚り,ã‹ã¤ i 番目ã®ã‚«ãƒ¼ãƒ‰ã®æ–‡å—列ã¯è¾žæ›¸é †ã«ãŠã„ã¦å±±æœ P ã®ã‚«ãƒ¼ãƒ‰ã®ã»ã†ãŒå°ã•ã„ã“ã¨ã‚’言ã†ï¼Ž
ã‚ãªãŸã®ä»•äº‹ã¯ï¼Œã€Œå±±æœã®èªã¿ã‚„ã™ã•ã€ã‚’最å°ã«ã™ã‚‹ã‚ˆã†ãªå±±æœã®ä¸ã§ï¼Œè¾žæ›¸é †æœ€å°ã¨ãªã‚‹ã‚‚ã®ã‚’求ã‚ã‚‹ã“ã¨ã§ã‚る.
入力ã¯è¤‡æ•°ã®ãƒ‡ãƒ¼ã‚¿ã‚»ãƒƒãƒˆã‹ã‚‰ãªã‚‹ï¼Ž å„データセットã¯æ¬¡ã®å½¢å¼ã§è¡¨ã•ã‚Œã‚‹ï¼Ž
N
s1
...
sN
1行目ã«ã¯ã‚«ãƒ¼ãƒ‰ã®æžšæ•°ã‚’表ã™æ•´æ•° N (1 ≤ N ≤ 100,000) ãŒä¸Žãˆã‚‰ã‚Œã‚‹ï¼Ž 続ã N è¡Œã«ã¯ã‚«ãƒ¼ãƒ‰ã«æ›¸ã‹ã‚ŒãŸ1æ–‡å—以上ã®æ–‡å—列ãŒæ›¸ã‹ã‚Œã¦ã‚り, 1è¡Œã¯è‹±å°æ–‡å—ã®ã¿ã§æ§‹æˆã•ã‚Œã‚‹ï¼Žã¾ãŸï¼ŒåŒä¸€ã‚»ãƒƒãƒˆå†…ã«ãŠã„ã¦ï¼Œå„ si ã¯äº’ã„ã«ç•°ãªã‚‹ã“ã¨ãŒä¿è¨¼ã•ã‚Œã¦ã„る. ã•ã‚‰ã«ï¼Œsi ã®é•·ã•ã®åˆè¨ˆã¯ 400,000 以下ã§ã‚ã‚‹ã“ã¨ãŒä¿è¨¼ã•ã‚Œã¦ã„る.
入力ã®çµ‚ã‚ã‚Šã¯ï¼Œ 1ã¤ã®ã‚¼ãƒã‹ã‚‰ãªã‚‹è¡Œã§ç¤ºã™ï¼Ž
å„データセットã«ã¤ã„ã¦ï¼Œã€Œå±±æœã®èªã¿ã‚„ã™ã•ã€ãŒæœ€å°ã¨ãªã‚‹å±±æœã®ä¸ã§è¾žæ›¸é †æœ€å°ã®å±±æœã®æƒ…å ±ã‚’ï¼ŒN è¡Œã«å‡ºåŠ›ã›ã‚ˆï¼Žå…·ä½“çš„ã«ã¯ï¼Œãã®ã‚ˆã†ãªå±±æœã® i 番目ã®ã‚«ãƒ¼ãƒ‰ã«æ›¸ã‹ã‚ŒãŸæ–‡å—列を,i 行目ã«å‡ºåŠ›ã™ã‚‹ã“ã¨ã«ãªã‚‹ï¼Ž
3 icpc icfp topcoder 4 apple application appointment acmicpc 3 a aa aaa 4 a aza azb b 0
icfp topcoder icpc apple acmicpc application appointment aa a aaa a aza b azb
è¾žæ›¸é †ã®å®šç¾©ã«æ³¨æ„ã™ã‚‹ã“ã¨ï¼Žä»Šå›žã®å®šç¾©ã§ã¯ï¼Œæ–‡å—列を連çµã—ãŸæ™‚ã«è¾žæ›¸é †æœ€å°ã«ãªã‚‹ã¨ã„ã†ã“ã¨ã‚’æ„味ã™ã‚‹ã‚ã‘ã§ã¯ãªã„.例ãˆã°ï¼Œ3番目ã®å…¥åŠ›ä¾‹ã§ã¯ [aaa,a,aa] も「山æœã®èªã¿ã‚„ã™ã•ã€ãŒæœ€å°ã¨ãªã‚‹è§£ã®ä¸€ã¤ã§ã‚り,連çµã™ã‚Œã°åŒã˜æ–‡å—列ã«ãªã‚‹ãŸã‚ï¼Œè¾žæ›¸é †æœ€å°ã®è§£ã«è¦‹ãˆã‚‹ã‹ã‚‚ã—ã‚Œãªã„.ã—ã‹ã—ãªãŒã‚‰ï¼Œä»Šå›žã®å®šç¾©ã§ã¯å…ˆé ã®æ–‡å—列 "aa" 㨠"aaa" ãŒå„ªå…ˆçš„ã«æ¯”較ã•ã‚Œã‚‹ãŸã‚ï¼Œè¾žæ›¸é †æœ€å°ã®è§£ã¯ [aa,a,aaa] ã¨ãªã‚‹ï¼Ž