求助大佬2、5测试点不过。
查看原帖
求助大佬2、5测试点不过。
1133932
crush_j楼主2023/11/8 18:40

#include<bits/stdc++.h>
using namespace std;
int arr1[105]={0};
int arr2[105]={0};
double arr3[105]={0};
double arr4[105]={0};
int main()
{
   long long N,T,j=0,k=0,b;
   double a,sum=0;
   cin>>N>>T;
   for(int i=0;i<N*2;i++)
   {
       if(i%2==0)
       {
           cin>>arr1[j];
           j++;
       }
       else{
           cin>>arr2[k];
           k++;
       }
   }
   for(int i=0;i<N*2;i++)
   {
       arr3[i]=(arr2[i]+0.0)/(arr1[i]+0.0);
       arr4[i]=arr3[i];
   }
   priority_queue<double> pq(arr3,arr3+N);
   while(1)
   {
       a=pq.top();
       for(int i=0;i<N;i++)
       {
           if(arr4[i]==a)
           {
               b=i;
           }
       }
       T-=arr1[b];
       if(pq.empty()==0)
       {
           if(T>=0)
           {
               sum+=arr2[b];
               pq.pop();
           }
           if(T<0)
           {
               T+=arr1[b];
               sum+=(T*a);
               break;
           }    
       }
       else
       {
           break;
       }
   }
   printf("%.2lf",sum);
   system("pause");
   return 0;
}
2023/11/8 18:40
加载中...