| Task: | Säähavainnot | 
| Sender: | Bean Benestrom | 
| Submission time: | 2023-11-12 16:58:05 +0200 | 
| Language: | Python3 (CPython3) | 
| Status: | READY | 
| Result: | 52 | 
| group | verdict | score | 
|---|---|---|
| #1 | ACCEPTED | 51.63 | 
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | 7 | details | 
| #2 | ACCEPTED | 0.04 s | 7.13 | details | 
| #3 | ACCEPTED | 0.04 s | 6.88 | details | 
| #4 | ACCEPTED | 0.04 s | 6.38 | details | 
| #5 | ACCEPTED | 0.04 s | 6.25 | details | 
| #6 | ACCEPTED | 0.04 s | 5.75 | details | 
| #7 | ACCEPTED | 0.04 s | 6 | details | 
| #8 | ACCEPTED | 0.04 s | 6.25 | details | 
Code
from functools import partial
PERDICT = 6
# Models
def line_model(k, temp: list, n=PERDICT):
    return temp + [temp[-1]+k*i for i in range(n)]
N = int(input())
for i in range(N):
    perdictions = PERDICT
    temp = [float(x) for x in input().split()]
    end_avg = (temp[-1] + temp[-2] + temp[-3]) / 3
    end_avg_increase = (temp[-1] - temp[-2])
    day_max = max(temp)
    day_min = min(temp)
    end_diff = temp[-1] - (temp[-7] + temp[-6]) / 2
    if   (end_avg < -8 ): MODEL = partial(line_model, 0.25)
    elif (end_avg > 8 ) : MODEL = partial(line_model, -0.25)
    else                : MODEL = partial(line_model,  0)
    if (end_diff > 4) : MODEL = partial(line_model, -0.6)
    temp = MODEL(temp, perdictions)
    print(' '.join([str(temp[-PERDICT+i]) for i in range(PERDICT)] + [" ?" for _ in range(12 - PERDICT)]))Test details
Test 1
Verdict: ACCEPTED
| input | 
|---|
| 1000 -0.4 -0.1 -0.2 -0.3 -0.4 -0.5 ...  | 
| correct output | 
|---|
| 0.4 0.4 0.5 0.8 0.9 1.1 1.3 1.... | 
| user output | 
|---|
| 0.2 0.2 0.2 0.2 0.2 0.2  ?  ? ... Truncated  | 
Test 2
Verdict: ACCEPTED
| input | 
|---|
| 1000 2.9 2.9 2.9 2.1 2.6 2 2 2.2 2....  | 
| correct output | 
|---|
| 2.3 1.6 1.5 1.1 1 0.7 0.6 0.8 ... | 
| user output | 
|---|
| 2.6 2.6 2.6 2.6 2.6 2.6  ?  ? ... Truncated  | 
Test 3
Verdict: ACCEPTED
| input | 
|---|
| 1000 6.6 6 6.4 6 4.6 4.6 4.2 4.3 4....  | 
| correct output | 
|---|
| 10 10.9 10.3 10.1 9.1 7.3 5.7 ... | 
| user output | 
|---|
| 10.1 9.5 8.9 8.3 7.69999999999... Truncated  | 
Test 4
Verdict: ACCEPTED
| input | 
|---|
| 1000 19.4 20.2 19.1 18.9 18.3 17.3 ...  | 
| correct output | 
|---|
| 18 18.2 17 17.5 17.2 16.2 12 8... | 
| user output | 
|---|
| 17.2 16.599999999999998 16.0 1... Truncated  | 
Test 5
Verdict: ACCEPTED
| input | 
|---|
| 1000 -5.7 -5.8 -5.8 -5.9 -7.1 -6.9 ...  | 
| correct output | 
|---|
| -4.2 -4.1 -4 -3.8 -3.5 -3.2 -3... | 
| user output | 
|---|
| -4.5 -4.5 -4.5 -4.5 -4.5 -4.5 ... Truncated  | 
Test 6
Verdict: ACCEPTED
| input | 
|---|
| 1000 14.8 14.8 15.4 12.9 11.8 9.7 9...  | 
| correct output | 
|---|
| 11.8 11 11.6 10.8 10.4 10.4 10... | 
| user output | 
|---|
| 12.6 12.35 12.1 11.85 11.6 11.... Truncated  | 
Test 7
Verdict: ACCEPTED
| input | 
|---|
| 1000 0.7 1 2 1.4 0.6 -0.4 -0.9 -0.7...  | 
| correct output | 
|---|
| -1.3 -0.5 -0.6 -1 -3.2 -7.2 -6... | 
| user output | 
|---|
| -1.8 -1.8 -1.8 -1.8 -1.8 -1.8 ... Truncated  | 
Test 8
Verdict: ACCEPTED
| input | 
|---|
| 1000 15.1 15.3 14.9 14.4 14.4 13.7 ...  | 
| correct output | 
|---|
| 15.6 15.9 16 15.2 14.6 14.4 13... | 
| user output | 
|---|
| 15.0 14.75 14.5 14.25 14.0 13.... Truncated  | 
