为什么 m 对 (a_i,b_i) 没有用呢?因为依次启动的机器输出的序列一定是合法的,即一定满足每个存储的 a_i 都在 b_i 前面,不需要开数组进行存储。
Code
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5;
int n,k,m,a,b,x,nk[N];
int main()
{
cin >> n >> k >> m;
for (int i = 1;i <= m;i++)
cin >> a >> b;
for (long long i = 1;i <= n * k;i++)
{
cin >> x;
cout << ++nk[x] << " ";
}
return 0;
}