Pagini recente » Cod sursa (job #388224) | Cod sursa (job #1774775) | Istoria paginii runda/pa-test1-2019-22/clasament | Cod sursa (job #1587841) | Cod sursa (job #1444343)
#include <iostream>
#include <vector>
#include <fstream>
#define Nmax 101
using namespace std;
int N, M;
int m[Nmax][Nmax];
int gradInt[Nmax], gradExt[Nmax];
fstream f("harta.in", ios::in);
fstream g("harta.out", ios::out);
int main()
{
f>>N;
int k, nod;
for(int i = 1; i <= N; ++i)
{
f>>gradExt[i]>>gradInt[i];
M+= gradInt[i];
}
g<<M<<'\n';
for(int i = 1; i <= N; ++i)
{
vector <int> nr(N + 1, 0);
for (int j = 1; j <= N; ++j)
if (i != j && gradInt[j])
m[gradInt[j]][++nr[gradInt[j]]] = j;
for (int j = N; j > 0; --j)
{
k = nr[j];
while(gradExt[i] && k)
{
nod = m[j][k--];
gradExt[i]--;
gradInt[nod]--;
g<<i<<' '<<nod<<'\n';
}
}
}
return 0;
}