Pagini recente » Cod sursa (job #1433408) | Cod sursa (job #2551909) | Cod sursa (job #2291132) | Cod sursa (job #1082457) | Cod sursa (job #2416596)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("felinare.in");
ofstream g("felinare.out");
#define nmax 8192
int n, m, x, y, gext[nmax], gint[nmax], nr;
vector<int> v[nmax];
bool u[2*nmax];
int main()
{
f >> n >> m;
for (int i = 1; i <= m; ++i) {
f >> x >> y;
v[x].push_back(y);
gext[x]++, gint[y]++;
}
for (int i = 1; i <= n; ++i) {
if (!gext[i]) u[i] = true, nr++;
if (!gint[i]) u[n+i] = true, nr++;
}
x = 0, y = 0;
for (int i = 1; i <= n; ++i) if (!u[i]) x++;
for (int i = n + 1; i <= n<<1; ++i) if (!u[i]) y++;
if (x > y) for (int i = 1; i <= n; ++i) u[i] = 1;
else for (int i = n + 1; i <= n<<1; ++i) u[i] = 1;
g << nr + max(x,y) << '\n';
for (int i = 1; i <= n; ++i)
g << u[i] * 1 + u[n+i] * 2 << '\n';
return 0;
}