d574: 節約符咒
Tags : 字串
Accepted rate : 799人/1023人 ( 78% ) [非即時]
評分方式:
Tolerant

最近更新 : 2010-01-13 14:17

Content

梅蘭城的法師們研究出了一種魔法道具:符咒。
即便是未曾學習魔法的人,
只要念出符咒上獨特的咒語就能施展特定魔法,
並且該咒語的魔力就會消失。

現在為了訓練新進的法師,需要使用大量的符咒。
但是梅蘭城(不事生產的)法師們並不會造紙這種技術,必須從首都艾克隆購買。

在紙張有限的情況下,
必須按照特定的規則來記述這些為數龐大的咒語才行。
假設有一張地震術符咒的內容是:aaabb
咒語是由三個a和兩個b所組成,所以在符咒上的記述內容必須改成:3a2b
並且咒語的每個字都是有順序的,假如符咒治癒術是xxxyywwyy的話,必須記作3x2y2w2y,"y"的部分不能記作4y
如果採取這個格式後沒有得到咒文的節約,那麼就選擇直接使用原本的咒語就可以了。

然而…

越強的法術寫出來的咒文就會越臭長!快寫個程式幫助魔法師節約咒文吧!
(他們總是基於好奇喜歡對電腦這東西施展破壞性的閃電魔法,所以沒人知道怎麼寫程式。)

Input

共計10個測資點。

每個測資點只有一組測試資料。
第一行有正整數n(1<=n<=10000000),表示原本咒文的長度(以字元為單位)
第二行則是咒文的內容連續的n個字元。
其中咒文的字元是由小寫字母所組成。

Output
如果簡化過的咒文長度小於原咒文,則輸出簡化版本
如果簡化後和原咒文字數相同甚至更多,則輸出原咒文
Sample Input #1
20
aaaaabbbbbcccccaabba

3
abc
Sample Output #1
5a5b5c2a2b1a

abc
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (15%): 1.0s , <1K
公開 測資點#2 (15%): 1.0s , <1K
公開 測資點#3 (10%): 1.0s , <1M
公開 測資點#4 (10%): 1.0s , <1M
公開 測資點#5 (10%): 1.0s , <1M
公開 測資點#6 (5%): 1.0s , <1M
公開 測資點#7 (5%): 1.0s , <1M
公開 測資點#8 (5%): 1.0s , <10M
公開 測資點#9 (5%): 1.0s , <10M
Hint :
(節約符咒 for 小小的競賽,出題by jack1)
測資點的分數分配由第一到第十分別是:
20分、15分、15分、10分、10分、10分、5分、5分、5分、5分,共計100分。
測資點1~3(20,15,15分):n最多1000
測資點4~6(10,10,10分):n最多100000
測資點7~10(5,5,5,5分):n最多10000000
Tags:
字串
出處:
jack1 [管理者:
jack1 (我是韜哥我忘了拿通知單)
]


ID User Problem Subject Hit Post Date
25941 d574
29 2021-07-06 14:58
25244
wish.rirf@gm... (C++ 與我)
d574
c++ 記憶體
103 2021-05-02 14:34
22808
fire5386 (皮卡丘)
d574
解題方法
338 2020-10-03 20:29
18750
giant0620 (BlenderWang)
d574
803 2019-08-04 10:00