結果
| 問題 |
No.2680 研究室配属
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-03-20 21:08:01 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 254 ms / 2,000 ms |
| コード長 | 773 bytes |
| コンパイル時間 | 3,565 ms |
| コンパイル使用メモリ | 258,288 KB |
| 最終ジャッジ日時 | 2025-02-20 08:24:10 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using ll = long long;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
using mint = atcoder::modint998244353;
int main(){
int n,m;
cin>>n>>m;
vector<int> a(m);
rep(i,m) cin>>a.at(i);
vector<vector<int>> t(n,vector<int>(m,0));
rep(i,n) rep(j,m) cin>>t.at(i).at(j);
vector<vector<int>> ans(m);
set<int> st;
rep(i,n) st.insert(i);
rep(c,m){
if(st.empty()) break;
for(int x:st){
ans.at(t.at(x).at(c)).push_back(x);
}
set<int> nst;
rep(i,m){
while((int)ans.at(i).size()>a.at(i)){
nst.insert(ans.at(i).back());
ans.at(i).pop_back();
}
}
swap(st,nst);
}
vector<int> v(n);
rep(i,m){
for(int x:ans.at(i)){
v.at(x)=i;
}
}
rep(i,n) cout<<v.at(i)<<" ";
cout<<endl;
}