Dã®ã²ã¨ã¯ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’æ„›ã—ã¦ã‚„ã¾ãªã„。常ã«ãƒ‰ãƒ¼ãƒŠãƒ„を欲ã—ã¦ã„る。ã—ã‹ã—ã€å¸«åŒ ã§ã‚ã‚‹ã¶ãªã—ã‚ã˜ãŸã‚“ã«ä½“ã‚’é›ãˆã‚‹ã“ã¨ã‚’命ã˜ã‚‰ã‚ŒãŸDã®ã²ã¨ã¯ã€æ‘‚å–ã‚«ãƒãƒªãƒ¼ã‚’制é™ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。ãã“ã§Dã®ã²ã¨ã¯åŸºç¤Žä»£è¬ã‚‚考慮ã—ã€ãã®æ—¥ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«ã‚ˆã£ã¦æ¶ˆè²»ã—ãŸã‚«ãƒãƒªãƒ¼ã®åˆ†ã¾ã§ãƒ‰ãƒ¼ãƒŠãƒ„を食ã¹ã¦ã‚‚よã„ã“ã¨ã«ã—ãŸã€‚Dã®ã²ã¨ã¯ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’æ„›ã—ã¦ã‚„ã¾ãªã„ã¨ã¯ã„ãˆã€å¥½ã¿ã¯ã‚ã‚‹ã®ã§ã€é£Ÿã¹ã‚‹ãƒ‰ãƒ¼ãƒŠãƒ„ã«ã‚ˆã£ã¦å¾—られる幸ç¦æ„Ÿã¯å¤‰ã‚る。ã¾ãŸã€ãã®æ—¥ã®ä½“力ã«ã‚ˆã£ã¦è¡Œãˆã‚‹ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚‚変ã‚ã£ã¦ãã‚‹ãŸã‚ã€ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã®ç¨®é¡žã€ãƒ‰ãƒ¼ãƒŠãƒ„ã®ç¨®é¡žã€ä½“力を考慮ã—ã€D日間ã§å¾—られる幸ç¦ã‚’最大化ã™ã‚‹ã“ã¨ã‚’試ã¿ãŸã€‚
T種類ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã¨N種類ã®ãƒ‰ãƒ¼ãƒŠãƒ„ã®ãƒ‡ãƒ¼ã‚¿ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚i番目ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«å¿…è¦ãªä½“力ã¯e_iã€æ¶ˆè²»ã‚«ãƒãƒªãƒ¼ã¯c_iã§ã‚る。トレーニングã¯1æ—¥ã«ã¡ã‚‡ã†ã©U種類ã ã‘è¡Œã‚ãªã‘ã‚Œã°ãªã‚‰ãšã€åŒã˜ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã¯1æ—¥ã«1度ã—ã‹è¡Œãˆãªã„。トレーニングã«å¿…è¦ãªä½“力ã®ç·å’Œã¯ãã®æ—¥ã®ä½“力以下ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„。ãã®æ—¥ã®ä½“力ã‹ã‚‰ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«å¿…è¦ãªä½“力ã®ç·å’Œã‚’引ã„ãŸå·®åˆ†ã¯æ®‹ã£ãŸä½“力ã¨ãªã‚Šã€ç¿Œæ—¥ã«å¼•ã継ãŒã‚Œã‚‹ã€‚
j番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„ã§å¾—られる幸ç¦åº¦ã¯h_jã€æ‘‚å–ã‚«ãƒãƒªãƒ¼ã¯a_jã§ã‚る。1æ—¥ã«åŒã˜ãƒ‰ãƒ¼ãƒŠãƒ„を複数個食ã¹ã¦ã‚‚よã„。1æ—¥ã«å¾—られる幸ç¦ã¯é£Ÿã¹ãŸãƒ‰ãƒ¼ãƒŠãƒ„ã®å¹¸ç¦åº¦ã®å’Œã§ã‚る。摂å–ã‚«ãƒãƒªãƒ¼ã®ç·å’Œã¯ãã®æ—¥ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«ã‚ˆã‚‹æ¶ˆè²»ã‚«ãƒãƒªãƒ¼ã®ç·å’Œä»¥ä¸‹ã§ãªã‘ã‚Œã°ãªã‚‰ãªã„。ãã®æ—¥ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«ã‚ˆã‚‹æ¶ˆè²»ã‚«ãƒãƒªãƒ¼ã®ç·å’Œã‹ã‚‰æ‘‚å–ã‚«ãƒãƒªãƒ¼ã®ç·å’Œã‚’引ã„ãŸå·®åˆ†ãŒä½™ã£ãŸæ¶ˆè²»ã‚«ãƒãƒªãƒ¼ã¨ãªã‚‹ãŒã€ã“ã‚Œã¯ç¿Œæ—¥ã«å¼•ã継ãŒãªã„。
体力ã®ä¸Šé™ã¯Sã§ã‚ã‚Šã€æ¯Žæ—¥ä½“力ã¯Oã ã‘回復ã™ã‚‹ã€‚åˆæ—¥ã®å§‹ã‚ã®ä½“力ã¯Sã§ã‚る。D日間ã§å¾—られる幸ç¦ã®å’Œã®æœ€å¤§å€¤ã‚’求ã‚よ。ã©ã†ã‚„ã£ã¦ã‚‚トレーニングをã¡ã‚‡ã†ã©U回行ãˆãªã„æ—¥ãŒç”Ÿã˜ã‚‹å ´åˆã€-1ã¨å‡ºåŠ›ã›ã‚ˆã€‚
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã‹ã‚‰ãªã‚‹ã€‚
S T U N O D e_1 c_1 ... e_T c_T h_1 a_1 ... h_N a_N
1行目ã¯6ã¤ã®æ•´æ•°ã‹ã‚‰ãªã‚Šã€ãã‚Œãžã‚Œä½“力ã®ä¸Šé™Sã€ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã®ç¨®é¡žTã€1æ—¥ã«è¡Œã†ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã®ç¨®é¡žæ•°Uã€ãƒ‰ãƒ¼ãƒŠãƒ„ã®ç¨®é¡žNã€1æ—¥ã«å›žå¾©ã™ã‚‹ä½“力é‡Oã€æ—¥æ•°DãŒç©ºç™½1æ–‡å—区切りã§ä¸¦ã‚“ã§ã„る。 続ãTè¡Œã¯ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã®æƒ…å ±ã‚’è¡¨ã™ã€‚ i+1行目(1 \leq i \leq T)ã¯2ã¤ã®æ•´æ•°ã‹ã‚‰ãªã‚Šã€ãã‚Œãžã‚Œãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã«å¿…è¦ãªä½“力e_iã€æ¶ˆè²»ã‚«ãƒãƒªãƒ¼c_iãŒç©ºç™½1æ–‡å—区切りã§ä¸¦ã‚“ã§ã„る。 続ãNè¡Œã¯ãƒ‰ãƒ¼ãƒŠãƒ„ã®æƒ…å ±ã‚’è¡¨ã™ã€‚ j+T+1行目(1 \leq j \leq N)ã¯2ã¤ã®æ•´æ•°ã‹ã‚‰ãªã‚Šã€ãã‚Œãžã‚Œå¾—られる幸ç¦åº¦h_jã€æ‘‚å–ã‚«ãƒãƒªãƒ¼a_jãŒç©ºç™½1æ–‡å—区切りã§ä¸¦ã‚“ã§ã„る。
制約:
D日間ã§å¾—られる幸ç¦ã®ç·å’Œã®æœ€å¤§å€¤ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆã€‚ ãŸã ã—ã€ã©ã†ã‚„ã£ã¦ã‚‚トレーニングをã¡ã‚‡ã†ã©U回行ãˆãªã„æ—¥ãŒç”Ÿã˜ã‚‹å ´åˆã€-1ã¨å‡ºåŠ›ã›ã‚ˆã€‚ è¡Œã®æœ€å¾Œã§ã¯å¿…ãšæ”¹è¡Œã‚’è¡Œã†ã“ã¨ã€‚
10 1 1 1 4 3 6 10 5 8
15
1日目ã¯1番目ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã„1番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„を食ã¹ã‚‹ã“ã¨ã§ã€ä½“力ãŒæ®‹ã‚Š4ã€å¹¸ç¦åº¦5を得る。 2日目ã¯ã¾ãšä½“力ãŒ4回復ã—ã€8ã¨ãªã‚‹ã€‚ 1番目ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã„1番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„を食ã¹ã‚‹ã“ã¨ã§ã€ä½“力ãŒæ®‹ã‚Š2ã€å¹¸ç¦åº¦5を得る。 3日目ã¯ã¾ãšä½“力ãŒ4回復ã—ã€6ã¨ãªã‚‹ã€‚ 1番目ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã„1番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„を食ã¹ã‚‹ã“ã¨ã§ã€ä½“力ãŒæ®‹ã‚Š0ã€å¹¸ç¦åº¦5を得る。 よã£ã¦ã€3日間åˆè¨ˆã§å¹¸ç¦15を得る。
10 3 2 3 3 2 4 10 3 4 3 5 3 4 4 5 5 7
19
1日目ã«1,3番目ã¨ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã†ã¨ã€ä½“力ãŒæ®‹ã‚Š3ã€æ¶ˆè²»ã‚«ãƒãƒªãƒ¼ãŒ15ã¨ãªã‚‹ã€‚ 2番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’3個食ã¹ã‚‹ã“ã¨ã§ã€æ‘‚å–ã‚«ãƒãƒªãƒ¼ãŒ15ã§å¹¸ç¦ãŒ12得られる。 2日目ã«ã¯ã¾ãšä½“力ãŒ3回復ã—ã€6ã¨ãªã‚‹ã€‚ 2,3番目ã¨ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã†ã¨ã€ä½“力ãŒæ®‹ã‚Š0ã€æ¶ˆè²»ã‚«ãƒãƒªãƒ¼ãŒ9ã¨ãªã‚‹ã€‚ 1番目ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã ã‘è¡Œã£ãŸæ–¹ãŒå¤šãã®ã‚«ãƒãƒªãƒ¼ã‚’消費ã§ãã€ä½“力も多ã残るãŒã€1æ—¥ã«ã¯å¿…ãš2種類ã®ãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã†å¿…è¦ãŒã‚ã‚‹ãŸã‚ã€ã“ã‚Œã¯ã§ããªã„。 1,2番目ã®ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’1個ãšã¤é£Ÿã¹ã‚‹ã¨æ‘‚å–ã‚«ãƒãƒªãƒ¼ãŒ9ã§å¹¸ç¦ãŒ7得られる。 2日間ã®å¹¸ç¦ã®åˆè¨ˆã¯19ã¨ãªã‚Šã€ã“ã‚ŒãŒæœ€å¤§ã§ã‚る。
10 3 2 3 5 3 4 10 2 2 3 5 4 3 5 4 7 5
58
10 1 1 1 1 1 13 13 13 13
-1
体力ã®ä¸Šé™ãŒ10ã—ã‹ãªã„ãŸã‚ã€ä½“力ãŒ13å¿…è¦ãªãƒˆãƒ¬ãƒ¼ãƒ‹ãƒ³ã‚°ã‚’è¡Œã†ã“ã¨ãŒã§ããªã„。 よã£ã¦ã€1æ—¥ã«è¡Œã†ã¹ãトレーニングã®ç¨®é¡žæ•°ã‚’満ãŸã™ã“ã¨ãŒã§ããªã„ãŸã‚ã€-1を出力ã™ã‚‹ã€‚