CSES - Datatähti 2024 alku - Säähavainnot
  • Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Olet mitannut ilman lämpötilaa eri puolilla Suomea kymmenen vuoden ajan. Kuinka hyvin säätä voisi ennustaa näiden mittausten avulla?

Tiedossa on menneen vuorokauden lämpötilan kehitys tietyssä paikassa. Mittaukset on tehty tasatunnein alkaen kello 12 ja päättyen seuraavana päivänä kello 11. Toteuta ohjelma, joka ennustaa, miten lämpötila kehittyy seuraavat 12 tuntia, eli kello 12–23.

Syöte

Syötteen ensimmäisellä rivillä on kokonaisluku n: päivien määrä.

Seuraa n riviä, joista kullakin on 24 lukua: menneen vuorokauden lämpötilat tasatunnein. Lämpötila ilmoitetaan celsiusasteina yhden desimaalin tarkkuudella.

Päivät ovat satunnaisessa järjestyksessä, ja eri päivien mittaukset voivat olla tehty eri paikoissa.

Tuloste

Jokaiselle päivälle tulosta 12 lukua: ennusteesi lämpötilasta seuraaville 12 tunnille. Ilmoita lämpötila celsiusasteina.

Jos joidenkin tuntien ennuste on epävarma, voit tulostaa luvun sijasta kysymysmerkin ?.

Esimerkki

Syöte:

1
2.6 2.5 2.3 2.2 2.1 2.1 1.8 1.5 1.2 1.1 1.2 1.1 1 1.3 1.5 1.3 1 1.1 1 0.9 1 0.7 1.1 1.5

Tuloste:

1.7 1.5 1.4 ? ? ? 2 2.3 2.5 ? 2.4 1.5

Rajat

  • 1 \le n \le 1000

Esimerkkidata

Lataa esimerkkidata tästä.

Tiedoston ensimmäisellä rivillä on luku 8000, päivien määrä.

Seuraa 8000 riviä. Jokaisella niistä on 36 lukua: lämpötilat jonain päivänä tasatunnein kello 12–23 ja sitä seuraavana päivänä kello 0–23.

Esimerkkidatan mittauspaikat ja -päivät on valittu satunnaisesti samalla tavalla kuin testitapauksissa. Sama päivä ei kuitenkaan voi esiintyä molemmissa aineistoissa.

Datan alkuperä: Ilmatieteen laitoksen avoin data, lämpötilahavainnot.

Pisteytys

Ohjelmasi suoritetaan usealla testitapauksella. Ohjelman tuottamia ennustuksia vertaillaan oikeisiin havaintoihin. Voit saada yhdestä testitapauksesta pisteitä seuraavalla perusteella:

Olkoon a oikein ennustettujen tuntien määrä. Ennustus on oikea, jos se poikkeaa oikeasta havainnosta alle 0.75 \degree\!\mathrm C.

Olkoon b väärin ennustettujen tuntien määrä. Ennustus on väärä, jos se poikkeaa oikeasta havainnosta vähintään 2.05 \degree\!\mathrm C.

Jos ohjelmasi tulosti jollekin tunnille ennusteen sijasta kysymysmerkin ?, tätä ei lasketa oikeaksi eikä vääräksi.

Testitapauksesta saamasi pistemäärä on 25(a-b)/n pyöristettynä lähimpään kokonaislukuun, kuitenkin vähintään 0 ja korkeintaan 100 pistettä. Tässä n merkitsee syötteessä esiintyvien päivien määrää.

Tehtävästä saamasi pistemäärä lasketaan keskiarvona kaikista testitapauksista.