-
J - Books
- ZOJ - 4067
- 题意:买书,必须按照书的顺序去遍历,当前钱数大于书的价格就必须买。
- 思路 :三种情况:1,带无限多的钱也就只能买m本,输出Richman。
- 2,无论带多少都不行输出impossible,3合法情况贪心求一个最大值,
-
#include<bits/stdc++.h> using namespace std; #define maxn 100500 #define inf 0x3f3f3f3f #define ll long long int a[maxn],t,n,m; int temp,num,minn,s; int main() { scanf("%d",&t); while(t--) { s=num=0; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) { scanf("%d",&temp); if(temp==0)num++; else a[++s]=temp; } if(n==m) { printf("Richman\n"); continue; } if(m<num) { printf("Impossible\n"); continue; } m-=num; ll sum=0; int tt=inf; for(int i=1; i<=s; i++) { if(i<=m)sum+=a[i]; else tt=min(tt,a[i]); } sum=sum+tt-1; printf("%lld\n",sum); } return 0; }
J - Books ZOJ - 4067 -思维+贪心
猜你喜欢
转载自blog.csdn.net/BePosit/article/details/83928104
今日推荐
周排行