50pts,求指正

P1056 [NOIP2008 普及组] 排座椅

记录每条走廊可以隔开多少人后,要排序,并且要按题目要求输出前 `m` 大的数。 代码: ```cpp #include<bits/stdc++.h> using namespace std; int h[2222],z[2222],xx[2222],yy[2222],xxx[2222],yyy[2222],ans[2005],n,m,k,l,d; int main(){ cin>>m>>n>>k>>l>>d; for(int i=1;i<=d;i++){ cin>>xx[i]>>yy[i]>>xxx[i]>>yyy[i]; if(xx[i]==xxx[i]) h[min(yy[i],yyy[i])]++; if(yy[i]==yyy[i]) z[min(xx[i],xxx[i])]++; } int maxx,maxxb,tot=0; for(int i=1;i<=k;i++){ maxx=-1; for(int j=1;j<=m;j++){ if(z[j]>maxx){ maxx=z[j]; maxxb=j; } } ans[++tot]=maxxb; z[maxxb]=-INT_MAX; } sort(ans+1,ans+k+1); for(int i=1;i<=k;i++) cout<<ans[i]<<" "; cout<<endl; tot=0; for(int i=1;i<=l;i++){ maxx=-1; for(int j=1;j<=n;j++){ if(h[j]>maxx){ maxx=h[j]; maxxb=j; } } ans[++tot]=maxxb; h[maxxb]=-INT_MAX; } sort(ans+1,ans+l+1); for (int i=1;i<=l;i++) cout<<ans[i]<<" "; return 0; } ```
by LOvO @ 2024-01-27 17:09:52


@[jzc114514](/user/755270)
by LOvO @ 2024-01-27 17:10:32


|