testlib 格式。
#include "testlib.h"
#include <iostream>
#include <bitset>
using namespace std;
const int maxN = 4e3 + 5;
const int maxM = 1e6 + 5;
int n, m;
vector<int> adj[maxM];
bitset<maxN> G[maxN];
int main(int argc, char* argv[])
{
registerTestlibCmd(argc, argv);
n = inf.readInt(3, 4000);
m = ouf.readInt(1, 1000000);
static vector<bool> vis;
static vector<int> pt;
vis.resize(m + 1);
for (int o = 1; o <= n; ++o)
{
int c = ouf.readInt(2, m);
pt.resize(c + 1);
for (int i = 1; i <= c; ++i)
{
pt[i] = ouf.readInt(1, m);
if (vis[pt[i]])
quitf(_wa, "output same station!");
vis[pt[i]] = true;
}
for (int i = 1; i <= c; ++i)
{
adj[pt[i]].push_back(o);
vis[pt[i]] = false;
}
}
for (int i = 1; i <= m; ++i)
{
if (adj[i].size() > 3)
quitf(_wa, "a station has more than 3 lines!");
for (int j = 0; j < int(adj[i].size()); ++j)
for (int k = 0; k < j; ++k)
{
int u = adj[i][j], v = adj[i][k];
G[u].set(v), G[v].set(u);
}
}
static bitset<maxN> tmp;
for (int i = 1; i <= n; ++i)
{
tmp.reset();
for (int j = 1; j <= n; ++j) if (G[i][j])
tmp |= G[j];
if ((int)tmp.count() != n)
quitf(_wa, "illegal plan!");
}
// quitf(_ok, "Accepted!");
static int point[10];
int cnt = 0;
for (int i = 0; i < 10; ++i)
point[i] = ans.readInt(1, 1000000);
for (int i = 0; i < 10; ++i)
if (m <= point[i])
++cnt;
if (cnt == 10)
quitf(_ok, "all accepted!");
else
quitp(0.1 * cnt, "get %d percent", cnt * 10);
return 0;
}