摘要
题目链接 |
难度等级 |
完成状态 |
完成分数 |
最后编辑时间 |
失误原因(初次提交分数)
|
Jeopardy!
|
★☆☆☆☆
|
答案正确
|
100
|
2015-02-24 14:18:18
|
字母打反(5)
|
题意
知识竞赛每题有一个得分,其中分为特别题和普通题,特别题可以将得分改为小等于自己当前分数的任何数。问应当如何安排答题顺序。
题解
普通题先答,得分大的先答,贪心排序即可。
代码
413C.cpp代码已折叠
展开折叠内容
|
- #include<cstdio>
- #include<iostream>
- #include<string>
- #include<algorithm>
- #include<cstring>
- using namespace std;
- #define lld unsigned long long int
- #define dsi(n) int n;scanf("%d",&n)
- #define si(n) scanf("%d",&n)
- #define f(i,n) for(int i=1;i<=n;++i)
- #define fi(n) f(i,n)
- #define f0(i,n) for(int i=0;i!=n;++i)
- #define fd(i,n) for(int i=n;i>=1;--i)
- #define ci const int&
- #define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
- #define c(x) const x&
- lld a[1000]={},s[1000]={},ans=0;
- int main()
- {
- dsi(n);dsi(k);
- fi(n)
- {
- cin>>a[i];
- }
- fi(k)
- {
- dsi(t);
- s[i]=a[t];
- a[t]=0;
- }
- sort(s+1,s+k/*fixed:不是n*/+1);
- fi(n)
- ans+=a[i];
- fd(i,k)
- ans+=max(ans,s[i]);
- cout<<ans;
- return 0;
- }
|