1 条题解
-
0
1. 题目分析
入门题。
令 。
我们假设电影 获得最佳导演奖,电影 获得最佳剧本奖,那么电影 的贡献为 ,电影 的贡献为 ,此时总的欢呼值为 。我们想令 最大,就是要使 和 最大。于是我们可以将电影按 和 从大到小排序。
-
当 时,取两个最大的即可。
-
当 时,交叉取最大。
这样就做出来了一道入门题。
2. 代码
#include<bits/stdc++.h> using namespace std; const int N=1e5+5; typedef long long ll; struct node{ll num,id;}A[N],B[N]; inline bool cmp(node a,node b){return a.num>b.num;} int main() { ll n,sum=0; scanf("%lld",&n); for(ll i=1;i<=n;i++) { ll a,b,c; scanf("%lld%lld%lld",&a,&b,&c); A[i]={b-a,i},B[i]={c-a,i}; sum+=a; } sort(A+1,A+1+n,cmp); sort(B+1,B+1+n,cmp); if(A[1].id!=B[1].id) { printf("%lld\n",sum+A[1].num+B[1].num); printf("%lld %lld\n",A[1].id,B[1].id); } else { if(A[1].num+B[2].num>A[2].num+B[1].num) { printf("%lld\n",sum+A[1].num+B[2].num); printf("%lld %lld\n",A[1].id,B[2].id); } else { printf("%lld\n",sum+A[2].num+B[1].num); printf("%lld %lld\n",A[2].id,B[1].id); } } return 0; } -
- 1
信息
- ID
- 10340
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 0
- 上传者