| Task: | Säähavainnot |
| Sender: | Niilo |
| Submission time: | 2023-10-31 19:54:06 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 63 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 63.38 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 7.88 | details |
| #2 | ACCEPTED | 0.01 s | 8.13 | details |
| #3 | ACCEPTED | 0.01 s | 8.38 | details |
| #4 | ACCEPTED | 0.01 s | 8 | details |
| #5 | ACCEPTED | 0.01 s | 7.88 | details |
| #6 | ACCEPTED | 0.01 s | 7.75 | details |
| #7 | ACCEPTED | 0.01 s | 7.5 | details |
| #8 | ACCEPTED | 0.01 s | 7.88 | details |
Code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define TEST_MODE 0
#if TEST_MODE
int a[12];
int b[12];
#endif
float ar[36];
void guess() {
float dif = 0.1F;
int mode = 0;
float nmin = ar[0], nmax = ar[0];
for (int i=1; i < 23; i++) {
nmin = min(nmin, ar[i]);
nmax = max(nmax, ar[i]);
}
if (abs(nmax - nmin) < 3.0F) {
mode = 1;
}
for (int i=0; i < 12; i++) {
const int i2 = 24+i;
if (i > 4 && mode != 1) {
ar[i2] = NAN;
continue;
}
float cur = ar[i2-24];
float pre = ar[i2-1];
if (mode == 1) {
ar[i2] = pre;
}
else {
ar[i2] = abs(cur - pre) > dif ?
pre + (cur < pre ? -dif : dif) : cur;
}
}
}
int main() {
#if TEST_MODE
freopen("data.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for (int i=0; i < n; i++) {
for (int j=0; j < 24; j++) cin >> ar[j];
guess();
for (int j=0; j < 12; j++) {
float q = ar[j+24];
#if TEST_MODE
float ans;
cin >> ans;
if (isnan(q)) continue;
if (abs(q - ans) < 0.75F) a[j]++;
if (abs(q - ans) > 2.05F) b[j]++;
#else
if (isnan(q)) printf("? ");
else printf("%f ", q);
#endif
}
}
#if TEST_MODE
int asum = 0, bsum = 0;
printf(" i | a | b | a-b \n");
for (int i=0; i < 12; i++) {
printf("%2d |%5d |%5d |%5d\n", i, a[i], b[i], a[i] - b[i]);
asum += a[i];
bsum += b[i];
}
printf(" |%5d |%5d |%5d\n", asum, bsum, (25*(asum-bsum)/n));
#endif
}
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.200000 0.200000 0.200000 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.600000 2.600000 2.600000 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.000000 9.900000 9.799999 9.... 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.300001 17.400002 17.500002 ... 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.600000 -4.700000 -4.800000 ... 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.700001 12.800001 12.900002 ... 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.700000 -1.600000 -1.500000 ... 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.100000 15.200001 15.100000 ... Truncated |
