CSES - Datatähti 2024 alku - Results
Submission details
Task:Säähavainnot
Sender:YourUncle
Submission time:2023-11-04 19:31:24 +0200
Language:Python3 (CPython3)
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttimescore
#10.03 s0details
#20.03 s0details
#30.03 s0details
#40.03 s0details
#50.03 s0details
#60.03 s0details
#70.03 s0details
#80.03 s0details

Code

import csv
# import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

HOURS = [i for i in range(0, 36)]

HOURS_MOD = [i for i in range(12, 24)]


def read_csv(file, n):
    takas = []
    with open(file, newline='') as f:
        reading = csv.reader(f, delimiter=' ')
        for rivi in reading:   
            if len(rivi) == 1:
                continue
            if len(takas) == n:
                break
            takas.append([float(x) for x in rivi])
            
    return takas

def draw(x, y, x2, y2, m, c):
    
    figure, axis = plt.subplots(1, 2)
    axis[0].plot(x, y, color='green', linestyle='dashed', linewidth = 3, 
         marker='o', markerfacecolor='blue', markersize=12) 
    axis[0].plot(m, c, 'r')
    axis[0].set_ylim([min(y)-1, max(y)+1])
    
    axis[1].plot(x2, y2, color='green', linestyle='dashed', linewidth = 3, 
         marker='o', markerfacecolor='blue', markersize=12) 
    axis[1].plot(m, c, 'r')
    axis[1].set_ylim([min(y)-1, max(y)+1])


    # plt.plot(x, y)
    # plt.xlim(0,36) 
    # plt.ylim(-10, 30) 
    # plt.xlabel('x - axis') 
    # # naming the y axis 
    # plt.ylabel('y - axis') 
    
    # giving a title to my graph 
    # plt.title('My first graph!') 
    
    # function to show the plot 
    plt.show() 

def linear_reg(x, y):
    A = np.vstack([x, y]).T
    print(A)
    m, c = np.linalg.lstsq(A, y, rcond=None)[0]
    return (m, c)

def new_points(lista, a, b):
    # if b-a > 3:
    #     return False
    #     # takas = [y+(b-a)*0.5 for y in lista]
    takas = []
    takas = [y+(b-a) for y in lista[:5]]
    for i in range(7):
        takas.append("?")
    return takas

# def first_last(n):
#     first = max(data[n][0:11])
#     last = data[n][11]
#     k = (last-first)/12
#     return k

def ka_line(k, b):
    takas = [x*k+b for x in range(12)]
    return takas

def testing(real, prediction):
    # print(len(real))
    # print(len(prediction))
    oikein = 0
    väärin = 0
    ei_dataa = 0
    if prediction == False:
        return (0, 0, 12)
    for i in range(len(real)):
        if prediction[i] == False:
            ei_dataa += 1
        else:
            erotus = abs(real[i]-prediction[i])
            if erotus < 0.75:
                oikein += 1
            elif erotus > 0.7 and erotus < 2.05:
                ei_dataa += 1
            else:
                väärin += 1
    return (oikein, väärin, ei_dataa)

    

# data = read_csv("data.csv", 2000)
# def setup(n):
#     # print(data[n][0:23])
#     # print(data[n][23:])
#     # m, c = linear_reg(HOURS[24:],data[0:12])
#     k = first_last(n)
#     linear = ka_line(k, data[n][22])
#     tulos = new_points(data[n][0:12], data[n][0], data[n][23])
    
#     a  = testing(data[n][24:], tulos)
#     # print(a)
#     # if tulos != False:
#     #     draw(HOURS, data[n], HOURS[24:], data[n][24:], HOURS[24:], new_points(data[n][0:12], data[n][0], data[n][23]))
#     return a




# setup(56)

n = int(input())
for i in range(n):
    lista = [float(x) for x in input().split()]
    tulos = new_points(lista, lista[0], lista[-1])
    print(" ".join(tulos))
    
    
# tulos = (0, 0, 0)
# for i in range(2000):
#     tulos = tuple(map(lambda i, j: i + j, tulos, setup(i)))
# print(tulos)
# print(data)

Test details

Test 1

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 2

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 3

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 4

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 5

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 6

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 7

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...

Test 8

Verdict:

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
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 4, in <module>
    im...