Lang:G++
Edit123456789101112131415161718192021222324252627282930#include <bits/stdc++.h>using namespace std;const int N = 30001;bitset <N> s[N][5], ans;int id[N][5], x[N][5];int main(){int n;scanf("%d", &n);for (int i = 0; i < n; ++i) {for (int j = 0; j < 5; ++j) {scanf("%d", &x[i][j]);id[x[i][j]][j] = i;}}for (int i = 1; i <= n; ++i)for (int j = 0; j < 5; ++j)s[i][j] = s[i - 1][j], s[i][j].set(id[i][j]);for (int i = 0; i < n; ++i) {ans = s[x[i][0]][0];for (int j = 1; j < 5; ++j)ans = ans & s[x[i][j]][j];printf("%d\n", ans.count() - 1);}return 0;}