結果
問題 |
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; }