CSES - Datatähti 2024 alku - Results
Submission details
Task:Säähavainnot
Sender:YourUncle
Submission time:2023-11-04 19:41:02 +0200
Language:Python3 (CPython3)
Status:READY
Result:43
Feedback
groupverdictscore
#1ACCEPTED43.25
Test results
testverdicttimescore
#1ACCEPTED0.03 s5.38details
#2ACCEPTED0.03 s5.75details
#3ACCEPTED0.03 s5.88details
#4ACCEPTED0.03 s5.25details
#5ACCEPTED0.03 s5.38details
#6ACCEPTED0.03 s5.13details
#7ACCEPTED0.03 s5.13details
#8ACCEPTED0.03 s5.38details

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())
# a = "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"
takas = []
lista = []
for i in range(n):
lista.append([float(x) for x in input().split()])
for i in lista:
tulos = [str(x) for x in new_points(i, i[0], i[-1])]
takas.append(" ".join(tulos))
for i in takas:
print(i)
# 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: 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.20000000000000007 0.50000000...
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 1.8000000000000003...
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 9.9 9.5 8.1 ? ? ? ? ?...
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 18.0 16.900000000000002 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.6 -4.6 -4.7 -5.8999999...
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.6 13.2 10.7 9.6 ? ? ? ...
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.5 -0.5 -1.1 -1.9 ? ? ?...
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 15.200000000000001 14.8 1...
Truncated