Cod sursa(job #2204675)

Utilizator t_@lexAlexandru Toma t_@lex Data 16 mai 2018 19:55:25
Problema Taramul Nicaieri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
# 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;
}