Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
38071 | LYLAKIOIAKIOI | 【BJ】T3 | C++ | 通过 | 100 | 582 MS | 79332 KB | 1128 | 2025-06-12 16:09:19 |
#include<bits/stdc++.h> using namespace std; const int N=5200; int mp[N][N]; int a[N][N]; int n; vector<int> vec[N]; int tim[N]; bool vis[N]; int main(){ cin>>n; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ char ch;cin>>ch; mp[i][j]=ch-'0'; } }for(int i=1;i<=n;i++){ for(int j=1;j<=2*n;j++){ char ch;cin>>ch; a[i][j]=ch-'0'; } }for(int i=1;i<=n;i++){ int cnt=0;int x=n,y=n; for(int j=2*n;j>=1;j--){ if(a[i][j]){ y--; }else{ if(!x){ y--; }else{ if(mp[x-1][y]) x--,vec[i].push_back(j); else y--; } } }reverse(vec[i].begin(),vec[i].end()); }for(int i=0;i<n;i++){ int val=1e9,id=0; for(int j=1;j<=n;j++){ if(vis[j]) continue; if(vec[j][i]<val) val=vec[j][i],id=j; }vis[id]=1;tim[id]=vec[id][i]; }for(int i=1;i<=n;i++) cout<<tim[i]<<' '; return 0; }