아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Springoalla

시간 제한5초메모리 제한1024 MB

요약
각 코스를 몇 번 달릴지 정하되 반 바퀴는 한 바퀴를 먼저 달린 뒤에만 가능하다는 규칙 아래, t분 이상이면서 시간이 가장 짧고 구간 수가 가장 적은 훈련을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

Springoalla älskar att löpträna. Totalt känner hon till nn löpspår och hon vet exakt hur lång tid det tar för henne att springa det spåret och sedan tillbaka. Den första gången hon springer på ett nytt spår, så lär hon känna spåret lite bättre. Närmare bestämt lär hon sig var i spåret hon kommit halvvägs, och har då möjlighet att springa tillbaka efter halva spåret. Då blir löptiden halverad. T.ex. kan hon springa ett halvt 2020-minutersspår på 1010 minuter, men bara efter att hon redan sprungit hela spåret en gång.

Springoalla vill löpträna i minst tt minuter men hon är också noggrann med att inte träna för länge. Givet tiderna för varje spår, beräkna hur lång tid t_st\_s hon minst måste springa. Talet t_st\_s ska alltså vara så litet som möjligt men uppfylla t_s≥tt\_s \ge t. Om det finns flera sätt att springa t_st\_s minuter vill Springoalla springa så litet antal sträckor n_sn\_s som möjligt, där man räknar varje gång hon springer bort från utgångspunkten som en sträcka, oavsett om det är ett helt eller halvt spår.

입력

På första raden står två heltal nn och tt, där 1≤n≤1,0001 \le n \le 1\\,000 är antalet löpbanor och 1≤t≤100,0001 \le t \le 100\\,000 är tiden som Springoalla vill löpträna. På andra raden står nn stycken heltal l_il\_i, där 1≤l_i≤40,0001 \le l\_i \le 40\\,000 kommer vara ett jämnt heltal och är antalet minuter det tar att springa löpspår ii. Talet tt behöver däremot inte vara jämnt.

출력

Första utdataraden ska innehålla de två heltalen t_st\_s och n_sn\_s: den tid Springoalla måste springa respektive hur många sträckor hon totalt springer. Därefter ska en rad skrivas med nn heltal, där det ii:te heltalet anger hur många minuter Springoalla sprang på spår ii. Finns det flera lösningar med samma t_st\_s och n_sn\_s kan du ange vilken som helst av dem.

예제4

  1. 예제 1

    입력
    3 23
    10 8 14
    
    예상 출력
    23 3
    15 8 0 
    
  2. 예제 2

    입력
    3 23
    8 12 14
    
    예상 출력
    24 2
    0 24 0 
    
  3. 예제 3

    입력
    1 3
    2
    
    예상 출력
    3 2
    3 
    
  4. 예제 4

    입력
    1 7
    4
    
    예상 출력
    8 2
    8