为什么给的例题能过,测试全部WA
查看原帖
为什么给的例题能过,测试全部WA
376607
haos楼主2021/7/28 09:38
#include <bits/stdc++.h>	
	using namespace std;
	int main()
	{
    int N,T;
    cin>>N>>T;
    float s=0,qx[N],q[N][2];
    int arr[N][2],qy[N];
    for(int i=0;i<N;i++)
        cin>>arr[i][0]>>arr[i][1]; 
        
    for(int i=0;i<N;i++)
    {    q[i][0]=arr[i][1]/arr[i][0]; 
        q[i][1]=i;}

    for(int i=0;i<N-1;i++) 
    {
        for(int j=0;j<N-1-i;j++)
        {
            if(q[j][0]<=q[j+1][0])
            {   int t=q[j][0];
                q[j][0]=q[j+1][0];
                q[j+1][0]=t;
                t=q[j][1];
                q[j][1]=q[j+1][1];
                q[j+1][1]=t;
            }
        }
    }

    for(int i=0;i<N;i++)
    {
		qx[i]=q[i][0];
		qy[i]=q[i][1];
        if(T>arr[qy[i]][0])
            {s+=qx[i]*arr[qy[i]][0];
            T-=arr[qy[i]][0];}
        else if(T==arr[qy[i]][0])
            {s+=qx[i]*arr[qy[i]][0];break;}
        else
            {s+=T*qx[i];break;}
    }
    printf("%.2f\n",s);
    return 0;
}
2021/7/28 09:38
加载中...