Tävlingsprogrammering/Uppgifter/Snöskottning

Från Wikibooks


Snöskottning

Schott har som många andra haft problem under vintertiden med allt snö. Schotts hus måste skottas ofta, men han tycker själv att skotta varje dag är för ofta. Du ska hjälpa Schott att sätta upp ett skott-schema för de kommande N dagarna. Till din hjälp har du en detaljerad väderleksprognos, så du vet exakt hur många cm det snöar eller smälter varje dag (innan kvällen). När det ligger minst H cm snö en kväll så är det dags att skotta, och när man skottar så försvinner all snö. Från början är det ingen snö alls.

Indata

Första raden innehåller två heltal, antalet dagar 1 ≤ N ≤ 100 och snötröskeln 1 ≤ H ≤ 1000. Därefter följer N rader vardera innehållande ett heltal mellan -100 och 100 (inklusive). Dessa tal beskriver hur många cm snö det kommer under var och en av de kommande N dagarna. Ett negativt värde betyder att denna mängd smälter istället (men snötäcket kan naturligtvis aldrig bli mindre än 0).

Utdata

Utdatat ska bestå av ett heltal, antalet kvällar Schott måste skotta.

Exempel: Indata

10 27
5
-7
8
19
-20
22
8
26
-15
14

Exempel: Utdata

2

Exempel: Förklaring

Schott måste skotta efter dag 4 och 7 då det är 27 respektive 30 cm snö.

Lösning[redigera]

Enkel simulering.

Lösning i C:

#include <stdio.h>

int main() {
  int N,M,t,d,i,c;
  scanf("%d %d", &N,&M);
  t=0;
  for(i=0;i<N;i++) {
    scanf("%d", &d);
    t+=d;            //Här snöar eller smälter det
    if(t<0) t=0;      //Snötäcket får aldrig bli negativt
    if(t>=M) {c++; t=0;}    //Här skottar vi bort all snön
  }
  printf("%d\n", c);
  return 0;
}