1 solutions
-
0
C++ :
#include<iostream> #include<algorithm> #include<map> #include<vector> #include<set> #include<string> #include<cstring> #include<cstdio> #include<cmath> #include<queue> #include<stack> using namespace std; #define ll long long #define ull unsigned long long #define pb push_back #define pii pair<int,int> #define all(A) A.begin(), A.end() #define fi first #define se second #define MP make_pair #define rep(i,n) for(register int i=0;i<(n);++i) #define repi(i,a,b) for(register int i=int(a);i<=(b);++i) #define repr(i,b,a) for(register int i=int(b);i>=(a);--i) template<typename T> inline T read(){ T s=0,f=1; char ch = getchar(); while(!isdigit(ch)) {if(ch == '-') f=-1;ch = getchar();} while(isdigit(ch)) {s=(s<<3)+(s<<1)+ch-48;ch = getchar();} return s*f; } #define gn() read<int>() #define gl() read<ll>() template<typename T> inline void print(T x) { if(x<0) putchar('-'), x=-x; if(x>9) print(x/10); putchar(x%10+'0'); } //////////////////////////////////////////////////////////////////////// const int N=2e5+100; int X[N],Y[N]; int id[N]; vector<int> ans; //////////////////////////////////////////////////////////////////////// int main(){ int n=gn(),m=gn(),k=gn(),l=gn(),d=gn(); repi(i,1,d){ int x=gn(),y=gn(),p=gn(),q=gn(); if(x==p){ ++Y[min(y,q)]; } else { ++X[min(x,p)]; } } repi(i,1,n)id[i]=i; sort(id+1,id+1+n,[](int x,int y){ return X[x]>X[y]; }); for(int i=1;i<=k;++i){ ans.pb(id[i]); } sort(all(ans)); for(int i=0,len=ans.size();i<len;++i){ printf("%d",ans[i]); if(i!=len-1)printf(" "); } putchar(10); ans.clear(); repi(i,1,m)id[i]=i; sort(id+1,id+1+m,[](int x,int y){ return Y[x]>Y[y]; }); for(int i=1;i<=l;++i){ ans.pb(id[i]); } sort(all(ans)); for(int i=0,len=ans.size();i<len;++i){ printf("%d",ans[i]); if(i!=len-1)printf(" "); } putchar(10); }
- 1
Information
- ID
- 19223
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By