Task: | Säähavainnot |
Sender: | a256 |
Submission time: | 2023-10-30 18:22:10 +0200 |
Language: | C++ (C++20) |
Status: | READY |
Result: | 19 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 19.25 |
test | verdict | time | score | |
---|---|---|---|---|
#1 | ACCEPTED | 0.02 s | 2.5 | details |
#2 | ACCEPTED | 0.02 s | 2.75 | details |
#3 | ACCEPTED | 0.02 s | 3 | details |
#4 | ACCEPTED | 0.02 s | 2.13 | details |
#5 | ACCEPTED | 0.02 s | 2.25 | details |
#6 | ACCEPTED | 0.02 s | 2 | details |
#7 | ACCEPTED | 0.02 s | 2.25 | details |
#8 | ACCEPTED | 0.02 s | 2.38 | details |
Compiler report
input/code.cpp: In function 'void ennusta(int)': input/code.cpp:56:28: warning: unused variable 'deltat' [-Wunused-variable] 56 | double ts=T[i][23],deltat=0; | ^~~~~~
Code
#include <bits/stdc++.h>using namespace std;#define ll long long#define N 10123#define NN 2000#define EI (-1e5)int n;double T[N][24],dt[N][24],E[N][12],S[12],avg[12];map<pair<double,double>,double> virtaus[N];double mittaus[8000][24],oikea[8000][24];void genvirtaus(){for(int i=0;i<n;++i){for(int h=0;h<23;++h){virtaus[h].insert({{T[i][h],T[i][h]-T[i][h-1]},T[i][h+1]-T[i][h]});}}}double kk(double pt,double dt,int h){double distance=1e5,mr=0;for(auto P:virtaus[h]){auto p=P.first;double dd=p.first*p.first+p.second*p.second;if(dd<distance){distance=dd;mr=P.second;}}return mr;}void luedata(){ifstream in;in.open("sample_data.txt");int Nn;in>>Nn;for(int i=0;i<8000;++i){for(int h=0;h<24;++h) in>>mittaus[i][h];for(int h=0;h<12;++h) in>>oikea[i][h];}in.close();}void ennusta(int i){for(int h=0;h<12;++h){dt[i][h]=T[i][h+1]-T[i][h];}double avg=0;for(int h=0;h<24;++h) avg+=T[i][h];avg/=24;double ts=T[i][23],deltat=0;for(int h=0;h<12;++h){ts+=dt[i][h];//deltat=kk(ts,deltat,h);//ts+=deltat;//E[i][h]=ts;E[i][h]=(1.5*ts+0.5*T[i][h]+0.5*avg)/2.5;//E[i][h]=avg;S[h]+=E[i][h];}}void solve(){genvirtaus();for(int i=0;i<n;++i){ennusta(i);}}void prosentti(){luedata();n=1000;double p=0;ofstream out;out.open("weather_output");for(int i=0;i<n;++i){for(int h=0;h<24;++h){T[i][h]=mittaus[i][h];}}genvirtaus();for(int i=0;i<n;++i){ennusta(i);int a=0,b=0;for(int h=0;h<12;++h){double d=abs(E[i][h]-oikea[i][h]);if(d<0.75){++a;} else if(d>=2.05){++b;}}p+=max(0,a-b);for(int h=0;h<24;++h) out<<mittaus[i][h]<<' ';for(int h=0;h<12;++h) out<<oikea[i][h]<<' ';out<<'\n';for(int h=0;h<12;++h) out<<E[i][h]<<' ';out<<'\n';}out.close();cout<<p/(24*n)<<'\n';}void ratkaisu(){cin>>n;for(int i=0;i<n;++i){for(int h=0;h<24;++h) cin>>T[i][h];}solve();for(int i=0;i<n;++i){for(int h=0;h<6;++h){printf("%.1f ",E[i][h]);}for(int h=6;h<12;++h){printf("? ");}}puts("");}int main(){//srand(time(NULL));cin.tie(0)->sync_with_stdio(0);ratkaisu();//prosentti();//simulaatio();}
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.1 0.1 0.0 -0.0 -0.1 -0.0 ? ?... 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.1 2.3 2.0 1.9 ? ? ? ... 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 |
---|
8.0 8.1 8.0 7.0 6.8 6.5 ? ? ? ... 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.7 17.2 16.8 16.4 15.7 14.7 ... 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 |
---|
-5.2 -5.2 -5.3 -6.0 -6.1 -5.8 ... 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.9 11.5 10.4 8.9 8.4 ? ... 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 |
---|
-0.9 -0.3 -0.4 -1.0 -1.8 -2.3 ... 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 |
---|
14.7 14.5 14.1 14.0 13.6 12.9 ... Truncated |