Pagini recente » Cod sursa (job #2106332) | Cod sursa (job #494517) | Cod sursa (job #2889648) | Cod sursa (job #2460135) | Cod sursa (job #761789)
Cod sursa(job #761789)
#include<fstream>
#include<vector>
#define nmax 104
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");
struct nod{int out, in; };//out- cate muchii ies din nodul i, in- cate intra
nod v[nmax];
vector <int> G[nmax];
int S, N;
int last , lastout;
int constr(int x,int nr )
{
for(int i = N; i && nr ;i--)
if(v[i].in && x != i)
{
G[x].push_back(i);
v[i].in--;
--nr;
}
}
void solve()
{
last = N;
for(int i = 1; i <= N; i++)
{
constr(i,v[i].out);
}
}
void read()
{
fin >> N;
int x, y;
for(int i = 1; i <= N ;i++)
{
fin >>x >>y;
v[i].out = x;
v[i].in = y;
S +=x;
}
}
int main()
{
read();
solve();
fout <<S <<'\n';
for(int i = 1; i <= N ;i++)
for(int j = 0;j < G[i].size(); j++)
fout <<i <<" " << G[i][j] << '\n';
fin.close();
return 0;
}