题解 | 三角谜题

三角谜题

https://www.nowcoder.com/practice/b3545e9409cd4a39a09a4629003d2293

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int N = 1e6 + 10;

map<int, int> f;

void solve() {
    cout << fixed << setprecision(8);
    f.clear();
    int n; cin >> n;
    for (int i = 1; i <= n; i ++ ) {
        int x, y;
        cin >> x >> y;
        f[x] += y;
    }
    vector<int> v1;
    double ans = -1;
    bool flag = false;
    for (auto kv : f) {
        if (kv.second >= 2) {
            v1.push_back(kv.first);
        }
    }
    if (v1.empty()) {
        cout << -1 << endl;
        return ;
    }
    for (auto kv : f) {
        int k = kv.first;
        int v = kv.second;
        int j = v1.size() - 1;
        while (j >= 0 && v1[j] == k && f[v1[j]] == 2) j --;
        if (j < 0) continue;
        int len = v1[j];
        if (len + len <= k) continue;
        double s = (double)k * 0.5 * sqrt(1ll * len * len - 1ll * k * k * 0.25);
        flag = true;
        ans = max(ans, s);
    }
    if (flag) cout << ans << endl;
    else cout << -1 << endl;
}

int main() {
	int T = 1;
    cin >> T;
    while (T -- )
        solve();
	return 0;
}

全部评论

相关推荐

强大的马里奥:我初中同学,没上高中,搞直播,现在提奔驰S450了
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
24分钟1.自我介绍2.黑盒测试用例设计方法3.运用刚才的测试方法对手机端淘宝购物车结算页面进行测试4.测试流程5.需求文档没有标明边界值,怎么确定边界值,确定边界值后怎么测6.你们公司自动化测试是测业务主流程还是新需求反问:不足之处答:问答问题前思考3s再答,针对提问再答
一笑而过2222:边:边界值分析法(处理输入边界) 类:等价类划分法(划分有效 / 无效输入) 定:判定表法(多条件组合的逻辑判定) 因:因果图法(分析输入输出的因果关系) 迁:状态迁移法(覆盖系统状态转换路径) 场:场景法(模拟端到端业务流程) 正:正交试验法(多因素组合的测试优化) 错:错误推测法(基于经验推测潜在漏洞) 记忆逻辑链(按测试场景优先级排序) 先处理明确输入:边界值 + 等价类(边类) 再处理条件组合:判定表 + 因果图(定因) 接着处理状态与流程:状态迁移 + 场景法(迁场) 最后优化多因素与补漏:正交试验 + 错误推测(正错)
查看6道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务