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

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

Dažymas skaičiais

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

요약
구간 길이 a_i와 전체 너비 W가 주어질 때, 모든 유효한 왼쪽에서 오른쪽 배치에서 항상 칠해지는 칸을 찾는다.
난이도

보통10점 중 6점

유형
그리디, 누적 합, 구간
정답자
아직 제출이 없습니다

문제

Martynas per atostogas labai susidomėjo vienmatėmis „Dažymas skaičiais“ užduotimis. Šios užduotys apibrėžiamos taip:

  • turime 1×W1 \times W dydžio tinklelį;

  • turime NN sveikųjų skaičių 1≤a_1,a_2,…,a_N1 ≤ a\_1, a\_2, \dots , a\_N;

  • tinklelį reikia užpildyti iš kairės į dešinę:

    • paliekant jame nulį ar daugiau tuščių langelių;

    • kiekvienam i=1…N−1i = 1\dots N - 1

      • nuspalvinant a_ia\_i iš eilės einančių langelių;
      • paliekant vieną ar daugiau tuščių langelių;
    • galiausiai nuspalvinant a_Na\_N iš eilės einančių langeliu;

    • paliekant nulį ar daugiau tuščių langelių.

Parašykite programą, kuri „Dažymas skaičiais“ užduočiai rastų langelius, kurie yra užpildyti visuose galimuose sprendiniuose.

입력

Pirmoje eilutėje įrašyti du sveikieji skaičiai: tinklelio plotis WW ir nuspalvintų grupių skaičius NN.

Antroje eilutėje pateikta NN tarpais atskirtų sveikųjų skaičių a_1,a_2,…,a_Na\_1, a\_2, \dots , a\_N.

출력

Pirmoje eilutėje išveskite vieną sveikąjį skaičių: kiek langelių bus užpildyta visuose galimuose sprendiniuose.

Antroje eilutėje didėjimo tvarka išveskite langelių, užpildytų visuose galimuose sprendiniuose, numerius.

제한

  • 1≤N≤10,0001 ≤ N ≤ 10\\,000
  • 1≤W,a_i≤1,000,0001 ≤ W, a\_i ≤ 1\\,000\\,000
  • Testai tokie, kad užduotį visada bus įmanoma išspręsti bent vienu būdu, t. y. galioja N−1+(a_1+a_2+⋯+a_N)≤WN - 1 + (a\_1 + a\_2 + \cdots + a\_N ) ≤ W.

예제2

  1. 예제 1

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

    입력
    6 2
    1 3
    
    예상 출력
    2
    4 5