标签:
3 5
1000
2000
1200
2100
2000
1200
1000
1000
2000
1 #include<iostream> 2 #include<cstdio> 3 #include<vector> 4 #include<cmath> 5 #include<queue> 6 #include<cstring> 7 #include<algorithm> 8 using namespace std; 9 int point,ans,N,M,me[100005],you[100005]; 10 int main(){ 11 // freopen("01.txt","r",stdin); 12 scanf("%d%d",&M,&N); 13 for(int i=0;i<M;i++) scanf("%d",&you[i]); 14 for(int i=0;i<N;i++) scanf("%d",&me[i]); 15 sort(me,me+N); 16 sort(you,you+M); 17 for(int i=0;i<M;i++){ 18 int *p=upper_bound(me+point,me+N,you[i]); 19 if(p!=me+N){ 20 *p=0; 21 point=p-me+1; 22 } 23 else{ 24 puts("0"); 25 return 0; 26 } 27 } 28 29 for(int i=0;i<N;i++){ 30 ans+=me[i]; 31 } 32 33 printf("%d\n",ans); 34 return 0; 35 }直接upper_bound()完事
若没有比敌人大的就直接输出0并结束程序
标签:
原文地址:http://www.cnblogs.com/radiumlrb/p/5800510.html