蒟蒻,求调。。。
查看原帖
蒟蒻,求调。。。
1127771
yekc2010楼主2025/1/22 10:02

RE#11 #14 #18

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
ll n,m,k;
ll a[100][100];
struct node{
	ll sum;
	ll num;
}aa[55];
bool cmp(node x,node y){
	return x.sum>y.sum;
}
bool cmp1(ll x,ll y){
	return x>y;
}
void px(){
	for(ll i=1;i<=m;i++){
		aa[i].sum=0;
	}
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=m;j++){
			aa[j].num=j;
			aa[j].sum+=a[i][j];
		}
	}	
}

int main(){
	IOS 
    cin>>n>>m>>k;
    for(ll i=1;i<=n;i++){
		for(ll j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
    while(k--){
		px();
		sort(aa+1,aa+1+m,cmp);
		ll b[1000];
		ll k1=0;
		for(ll i=1;i<=m;i++){
			if(aa[i].sum==aa[i-1].sum||i==1){
				for(ll j=1;j<=n;j++){
					k1++;
					b[k1]=a[j][aa[i].num];
					a[j][aa[i].num]=0;
				}
			}
			else break;
		}
		for(ll i=m;i>=1;i--){
			if(aa[i].sum==aa[i+1].sum||i==m){
				for(ll j=1;j<=n;j++){
					k1++;
					b[k1]=a[j][aa[i].num];
					a[j][aa[i].num]=0;
				}
			}
			else break;
		}
		sort(b+1,b+1+k1,cmp1);
		ll k2=1;
		for(ll i=1;i<=n;i++){
			if(i%2==1){
				for(ll j=1;j<=m;j++){
					if(a[i][j]==0){
						a[i][j]=b[k2];
						k2++;
					}
				}
			}
			else{
				for(ll j=m;j>=1;j--){
					if(a[i][j]==0){
						a[i][j]=b[k2];
						k2++;
					}					
				}
			}
		}		
	}
	for(ll i=1;i<=n;i++){
		for(ll j=1;j<=m;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<"\n";
	}
  	return 0;
}
/*



*/
2025/1/22 10:02
加载中...