CSES - Datatähti 2024 alku - Results
Submission details
Task:Säähavainnot
Sender:Vludo
Submission time:2023-11-12 18:35:46 +0200
Language:C++ (C++11)
Status:READY
Result:68
Feedback
groupverdictscore
#1ACCEPTED68
Test results
testverdicttimescore
#1ACCEPTED0.01 s8.88details
#2ACCEPTED0.01 s8.75details
#3ACCEPTED0.01 s8.63details
#4ACCEPTED0.01 s8.63details
#5ACCEPTED0.01 s8.5details
#6ACCEPTED0.01 s8.5details
#7ACCEPTED0.02 s7.88details
#8ACCEPTED0.02 s8.25details

Code

/*
    C++ code author: Vludo
    Created: 2023-11-08 07:54:29
*/
#include <bits/stdc++.h>
 
#define forn(i, n) for(int i=0; i<n; i++)
#define FOR(i, j, n) for(int i=j; i<n; i++)
#define pb push_back
#define F first
#define S second
#define ever ;;
 
typedef long long ll;
 
const int inf = 1.01e9;
const int mod = 1e9 + 7;
 
using namespace std;
 
// ---- main part ---- //
 
float b1 = 0.02623708478682374;
float k1[24] = {-0.02197703, 0.04341374, 0.00145373, 0.01315305 -0.05389639, 0.04299994,
				-0.02205997, 0.00549526, 0.0104706, -0.05514824, 0.06700865, 0.00835559,
				-0.04119852, 0.00315418, 0.03318097 -0.01621034 -0.03318527, 0.02477104,
				-0.02522914, 0.00697602 -0.00412755 -0.09377667, 0.05058915, 0.99879108};
 
static inline unsigned long long rdtsc() { unsigned long long d; asm volatile ("rdtsc" : "=A" (d) ); return d; }
 
 
int main () {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	srand(rdtsc());
	
	int n;
	cin >> n;
	
	forn(i, n) {
		float arr[36];
		
		forn(j, 24) {
			cin >> arr[j];
		}
		
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 20) {
			cout << arr[23] + 0.1 << " ";
			forn(gg, 10) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 15) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			forn(gg, 8) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 7) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			forn(gg, 6) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 5) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.4 << " ";
			forn(gg, 5) cout << "? ";
			cout << "?" << endl;
			continue;
		}
		
		if (arr[23] <= 1.8 && arr[23] >= -1.8) {
			cout << arr[23] - 0.07 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.4 << " ";
			cout << arr[23] - 0.4 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.1 << " ";
			cout << arr[23] - 0.07 << endl;
			continue;
		}
		
		if (arr[23] > 1.8 && arr[23] < 5) {
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.5 << " ";
			cout << arr[23] - 0.5 << " ";
			forn(gg, 3) cout << "? ";
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) > 3) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.85 << " ";
			cout << arr[23] - 0.85 << " ";
			forn(gg, 5) cout << "? ";
			continue;
		}
		
		if (*max_element(arr, arr+24) - *min_element(arr, arr+24) < 1) {
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] + 0.1 << " ";
			cout << arr[23] - 0.2 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0.5 << " ";
			cout << arr[23] - 0.5 << " ";
			cout << arr[23] - 0.3 << " ";
			cout << arr[23] - 0. << " ";
			cout << arr[23] + 0.1 << " ";
			forn(gg, 2) cout << "? ";
			continue;
		}
		
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] + 0.1 << " ";
		cout << arr[23] - 0.2 << " ";
		cout << arr[23] - 0.3 << " ";
		cout << arr[23] - 0.85 << " ";
		cout << arr[23] - 0.85 << " ";
		cout << arr[23] - 0.85 << " ";
		cout << arr[23] - 0.85 << " ";
		cout << "?" << endl;
		cout << "?" << endl;
		cout << "?" << endl;
	}
	
	return 0;
}

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.13 0.1 0.1 2.98023e-09 -0.1 ...
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.4 2.4 2.3 2.3 2....
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.2 10.2 10.2 9.9 9.8 ? ? ? ?...
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.3 17.3 17.3 17 16.9 ? ? ? ?...
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.4 -4.4 -4.4 -4.7 -4.8 -5.35...
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.7 12.7 12.7 12.4 12.3 ? ? ?...
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.87 -1.9 -1.9 -2 -2.1 -2.2 -...
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.1 15.1 15.1 14.8 14.7 14.15...
Truncated