题意:给定n杯水和目标温度T,告诉你每杯水温度和体积,然后求最多能得到多少体积目标温度的水。
思路:按温度排序,先把等于目标温度的直接加上,然后两个下标贪心搞。
#include<bits/stdc++.h>
using namespace std;
#define maxn 1000006
struct Water{
int degree;
double v;
}w[maxn];
int main()
{
int n;
double T;
cin>>n>>T;
double v=0;
for(int i=0;i<n;i++)
scanf("%lf",&w[i].v);
for(int i=0;i<n;i++)
scanf("%d",&w[i].degree);
sort(w,w+n,[](Water a,Water b){return a.degree<b.degree;});
int l,r;
l=-1;
r=n;
double ans=0;
for(int i=0;i<n;i++) {
if(w[i].degree==T) ans+=w[i].v;
else if(w[i].degree<T) {
l=i;
}