为什么总是运行超时 ,。。。。通过率只有40%?
#include <iostream>
#include <algorithm>
const int Max= 1e7+5;
using namespace std;
struct gift{
int a;
int b;
}gs[Max];
int cmp(gift &A, gift &B){
if(A.a != B.a){
return A.a <B.a;
}
else{
return A.b >B.b;
}
}
int main(){
int t;int n,v;
cin>>t;
while(t--){
cin>>n>>v;
long long space =v;
int num =0;
for(int i=0;i<n;i++){
int a ,b,c;
cin>>a>>b;
c = b-a;
space =space+c;
if(c>0){
gs[num].a =a;
gs[num].b = b;
num++;
}
}
sort(gs,gs+num,cmp);
int flag = true;
if(space<0){
flag = false;
}
else{
for(int k=0;k<num;k++){
v = v-gs[k].a;
if(v<0){
flag= false;
break;
}
else{
v= v+ gs[k].b;
}
}
}
if(flag){
cout<<"yes"<<endl;
}
else{
cout<<"no"<<endl;
}
}
}
全部评论
(0) 回帖