Pagini recente » Cod sursa (job #2138095) | Cod sursa (job #2631496) | Cod sursa (job #3145289) | Cod sursa (job #2832390) | Cod sursa (job #2204675)
# include <fstream>
# include <vector>
# include <algorithm>
# define NMAX 101
using namespace std;
fstream f("harta.in", ios::in);
fstream g("harta.out", ios::out);
int n, m, i, j, in[NMAX], out[NMAX];
bool cmp(pair<int, int> a, pair<int, int> b)
{
if(a.second == b.second)
return a.first > b.first;
return a.second > b.second;
}
int main()
{
f >> n;
for(i = 1; i <= n; i++)
{
f >> in[i] >> out[i];
m += in[i];
}
g << m << '\n';
for(i = 1; i <= n; i++)
{
vector<pair<int, int> > v;
for(j = 1; j <= n; j++)
if(out[j] && i != j)
v.push_back(make_pair(j, out[j]));
sort(v.begin(), v.end(), cmp);
int dim = v.size();
for(j = 0; j < dim && in[i]; j++)
{
out[v[j].first]--;
in[i]--;
g << i << ' ' << v[j].first << '\n';
}
}
f.close();
g.close();
return 0;
}