ZOJ(青岛icpc2018) Books

在这里插入图片描述

在这里插入图片描述

输入

4
4 2
1 2 4 8
4 0
100 99 98 97
2 2
10000 10000
5 3
0 0 0 0 1
6
96
Richman
Impossible

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
int a[N];
int main(){
    int T;
    cin>>T;
    while(T --){
        int n,m;
        cin>>n>>m;
        for(int i = 0;i < n;i ++)cin>>a[i];
        
        int zerocount = 0;
        for(int i = 0;i < n;i ++)
               if(!a[i])zerocount ++;
        if(zerocount > m || m > n)cout<< "Impossible"<<endl;
        else{
            if(m == n)cout<< "Richman"<<endl;
            else{
                m = m - zerocount;
                ll res = 0,num = 0;
                int i;
                for(i = 0;i < n && num < m;i ++){
                    if(a[i]){
                        res += a[i];
                        num ++;
                    }
                }
                int mi = 0x3f3f3f3f;
                for(int k = i;k < n;k ++){
                    if(a[k])mi = min(a[k],mi);
                }
                    
                if(mi != 0x3f3f3f3f)cout<< (res + mi - 1)<<endl;
                
                else cout<<"Richman"<<endl;
            }
        }
        
    }
    return 0;
}

版权声明:本文为m0_46656833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。