题目:
接下来我们用C++进行编程:
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int Getinjure(int n, int k, vector<int> a, vector<int> b)
{
int i = 0;
int j;
vector<int> sign(n, 0);
int result = 0;
int minindex, maxindex;
while(i < n)
{
minindex = -1;
maxindex = -1;
for(j = 0; j < n; j++)
{
if(sign[j] == 0)
{
if(a[j] < k && minindex == -1)
minindex = j;
else if(a[j] < k && a[j] < a[minindex])
minindex = j;
if(a[j] >= k && maxindex == -1)
maxindex = j;
else if(a[j] >= k && a[j] > a[maxindex])
maxindex = j;
}
}
cout << minindex << ' ' << maxindex << endl;
if(minindex != -1)
{
k++;
sign[minindex] = 1;
}
else if(maxindex != -1)
{
result += b[maxindex];
sign[maxindex] = 1;
k++;
}
i++;
}
return result;
}
int main(){
int n, k;
cin >> n >> k;
int i;
vector<int> a(n, 0);
vector<int> b(n, 0);
for(i = 0; i < n; i++)
{
cin >> a[i];
}
for(i= 0; i < n; i++)
{
cin >> b[i];
}
int result = Getinjure(n, k, a, b);
cout << result << endl;
return 0;
}