Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // code 1
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <cmath>
- #include <iomanip> //fixed setprecision
- using namespace std;
- const int N = 16;
- double a[N], b[N], c[N];
- int n;
- double S(double x) {
- double ret = -1e100;
- for (int i = 1; i <= n; ++i) {
- ret = max(ret, a[i] * (x - b[i]) * (x - b[i]) + c[i]);
- }
- return ret;
- }
- void solve() {
- cin >> n;
- for (int i = 1; i <= n; ++i) {
- cin >> a[i] >> b[i] >> c[i];
- }
- double L = 0.0, R = 300;
- int cnt = 300;
- while (cnt--) {
- double tl = L + (R - L) / 3;
- double tr = L + (R - L) / 3 * 2;
- if (S(tl) < S(tr)) R = tr;
- else L = tl;
- }
- //printf("%.5lf\n", L);
- cout << fixed << setprecision(5) << S(L) << endl;
- }
- int main () {
- int T; cin >> T;
- for (int i = 0; i < T; ++i) {
- solve();
- }
- }
- //code 2
- #include <bits/stdc++.h>
- using namespace std;
- int a[16];
- vector<int> sta;
- int n;
- void dfs(int now, int cnt) {
- //try to push a[now]
- if (cnt == 6) {
- for (int i = 0; i < 6; ++i) {
- cout << sta[i] << ' ';
- }
- cout << endl;
- return;
- }
- if (now == n + 1) {
- return;
- }
- sta.push_back(a[now]);
- dfs(now + 1, cnt + 1);
- sta.pop_back();
- dfs(now + 1, cnt);
- }
- int main () {
- while (scanf("%d", &n)) {
- if (n == 0) break;
- for (int i = 1; i <= n; ++i) {
- scanf("%d", &a[i]);
- }
- dfs(1, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement