Cod sursa(job #2416596)

Utilizator eduardcadarCadar Eduard eduardcadar Data 27 aprilie 2019 19:30:41
Problema Felinare Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#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;
}