#include #include #include #include #include using namespace std; const int MAXD = 2000+5; const int MAXM = 1000+5; const int MAXN = 1000+ 5; int N,M,L,K,D; int XLine[MAXN]; int YLine[MAXM]; struct pack { int value; int id; pack(int _Value,int _id) : value(_Value),id(_id){} }; bool cmp1(const pack& a,const pack& b) { return a.value>b.value; } bool cmp2(const pack& a,const pack& b) { return a.id0) { ++mcnt; } } //*/ vector vec; for(int i=0;i<=M;i++) { if(XLine[i]!=0) { vec.push_back(pack(XLine[i],i)); } } sort(vec.begin(),vec.end(),cmp1); sort(vec.begin(),vec.begin()+K,cmp2); for(int i=0;i0) { ++mcnt; } } //*/ for(int i=0;i<=N;i++) { if(YLine[i]!=0) { vec.push_back(pack(YLine[i],i)); } } sort(vec.begin(),vec.end(),cmp1); sort(vec.begin(),vec.begin()+L,cmp2); for(int i=0;i