constint N = 3e5 + 5; int cnt[N], deg[N], vis[N], x[N], y[N], n, m; vector<pair<int, int> > e[N];
intmain(){ while (scanf("%d %d", &n, &m) != EOF) { for (int i = 1; i <= m; i++) { scanf("%d %d", &x[i], &y[i]); deg[x[i]] += 1; deg[y[i]] += 1; } for (int i = 1; i <= m; i++) { int u = x[i], v = y[i]; if (deg[u] < deg[v] || (deg[u] == deg[v] && u > v)) swap(u, v); e[u].push-back({v, i}); } for (int u = 1; u <= n; u++) { for (auto v : e[u]) vis[v.first] = v.second; for (auto v : e[u]) for (auto w : e[v.first]) { if (vis[w.first]) { cnt[w.second]++; cnt[v.second]++; cnt[vis[w.first]]++; } } for (auto v : e[u]) vis[v.first] = 0; } longlong res = 0; for (int i = 1; i <= m; i++) { res = res + cnt[i] * 1ll * (cnt[i] - 1) / 2; cnt[i] = 0; } for (int i = 1; i <= n; i++) e[i].clear(), deg[i] = 0; printf("%lld\n", res); } return0; }
intmain(){ scanf("%d", &n); for (int i; n; n -= (i - 1) * (i - 2) / 2, k++) { for (i = 1; i < k && (i - 1) * i / 2 <= n; i++) a[i][k] = 1; } printf("%d\n", k - 1); for (int i = 1; i < k; i++, puts("")) for (int j = i + 1; j < k; j++) printf("%d ", a[i][j] | a[j][i]); return0; }