Pagini recente » Cod sursa (job #2054917) | Cod sursa (job #730893) | Cod sursa (job #1081689) | Cod sursa (job #1223790) | Cod sursa (job #1199206)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <string>
#include <vector>
#include <map>
using namespace std;
#define max(a,b) ((a>b)?a:b)
#define TEST
#ifdef TEST
ifstream fin("harta.in");
ofstream fout("harta.out");
#else
#define fin cin
#define fout cout
#endif
int n;
int a[100];
int b[100];
struct ed
{
int x, y;
};
vector<ed> rez;
int main()
{
fin>>n;
for(int i=0; i<n; i++)
{
fin>>a[i]>>b[i];
}
for (int i=0; i<n; i++)
{
for (int j=i+1; j<n && a[i]; j++)
{
if ((j!=i)&&b[j]) {ed t; t.x=i+1; t.y = j+1; rez.push_back(t); b[j]--; a[i]--;}
}
for (int j=0; j<i && a[i]; j++)
{
if ((j!=i)&&b[j]) {ed t; t.x=i+1; t.y = j+1; rez.push_back(t); b[j]--; a[i]--;}
}
}
fout<<rez.size();
fout<<'\n';
for(int i=0; i<rez.size(); i++)
fout<<rez[i].x<<' '<<rez[i].y<<'\n';
return 0;
}