Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <algorithm>
- #include <set>
- #include <cstdlib>
- #include <queue>
- #include <sstream>
- #include <map>
- #include <iomanip>
- #include <math.h>
- #include <numeric>
- #include <stdexcept>
- #include <unordered_set>
- #include <unordered_map>
- using namespace std;
- //#pragma GCC optimize("O3")
- //#pragma GCC optimize("Ofast")
- //#pragma GCC optimize("unroll-loops")
- //#pragma GCC optimize("Ofast", "O3", "unroll-loops")
- //#pragma GCC optimize("sse,sse2,sse3,sse4")
- typedef long long ll;
- typedef unsigned long long ull;
- #define pb push_back
- #define mp make_pair
- #define all(x) x.begin(), x.end()
- #define rall(x) x.rbegin(), x.rend()
- const double Pi = acos(-1);
- double f(double m, int n) {
- double al = Pi / n;
- double b = (Pi / 2.0) - al;
- double ang = b + m;
- double g2 = 1.0 / sin(al);
- double res1 = g2 * sin(ang);
- double ang2 = b + (al - m);
- double res2 = g2 * sin(ang2);
- return max(res1, res2);
- }
- signed main() {
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- int q;
- string s;
- vector<int> a, b, c;
- cin >> q;
- while (q--) {
- int n;
- cin >> n;
- n *= 2;
- double l = 0;
- double r = Pi / n;
- while (fabs(r - l) > 1e-9) {
- double m1 = l + (r - l) / 3.0;
- double m2 = r - (r - l) / 3.0;
- if (f(m1, n) > f(m2, n)) l = m1;
- else r = m2;
- }
- cout << fixed << setprecision(12) << f(l, n) << "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement