栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3356 Football Gambling II

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3356 Football Gambling II

#include<cstdio>#include<algorithm>typedef long long ll;struct E {int grade, odds;E() {}E(int g, int o) :grade(g), odds(o) {}bool operator<(const E &e) const {return ((ll) grade * odds) / 100 < ((ll) e.grade * e.odds) / 100;}};char s[100];int main() {int testCount;scanf("%d", &testCount);while (testCount--) {int total;scanf("%d", &total);int odds[3];for (int i = 0; i < 3; ++i) {scanf("%s", s);odds[i] = 0;for (int j = 0; s[j]; ++j) {if (s[j] != '.') {odds[i] = odds[i] * 10 + (s[j] - '0');}}}int sum = 0;for (int i = 0; i < 3; ++i) {sum += odds[i] * odds[(i + 1) % 3];}E e[3];for (int i = 0; i < 3; ++i) {e[i] = E(std::max(0LL,(ll) total * odds[(i + 1) % 3] * odds[(i + 2) % 3]/ sum - 1), odds[i]);}int used = 0;for (int i = 0; i < 3; ++i) {used += e[i].grade;}std::sort(e, e + 3);int result = total;int left = total - used;for (int i = 0; i < total - used; ++i, --left) {result = std::max((ll) result,((ll) e[0].grade * e[0].odds) / 100 + left);e[0].grade++;std::sort(e, e + 3);}result = std::max((ll) result, ((ll) e[0].grade * e[0].odds) / 100);printf("%dn", result);}}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375525.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号