算法竞赛入门经典 水水水水水
1.1 思维的体操
勇者斗恶龙
骑士能力值和龙直径排序后挨个砍就是了

1 #include<bits/stdc++.h> 2 using namespace std; 3 #define rg register 4 const int N=20000+55; 5 int n,m,a[N],b[N],ans=0; 6 7 template<class t>void rd(t &x) 8 { 9 x=0;int w=0;char ch=0; 10 while(!isdigit(ch)) w|=ch=='-',ch=getchar(); 11 while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar(); 12 x=w?-x:x; 13 } 14 15 int main() 16 { 17 while(scanf("%d%d",&n,&m)==2&&n&&m) 18 { 19 ans=0; 20 for(rg int i=1;i<=n;++i) rd(a[i]); 21 for(rg int i=1;i<=m;++i) rd(b[i]); 22 sort(a+1,a+1+n);sort(b+1,b+1+m); 23 int cur=1; 24 for(rg int i=1;i<=m;++i) 25 if(b[i]>=a[cur]) 26 { 27 ans+=b[i],++cur; 28 if(cur-1==n) break; 29 } 30 if(cur<=n) printf("Loowater is doomed!\n"); 31 else printf("%d\n",ans); 32 } 33 return 0; 34 }
突击战