Cod sursa(job #365447)

Utilizator mihaionlyMihai Jiplea mihaionly Data 18 noiembrie 2009 19:21:09
Problema Taramul Nicaieri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
int n;
struct
 {
 int in,out;
 } A[101];
bool M[101][101];
void read()
 {
 ifstream f("harta.in");
 int i;
 f>>n;
 for(i=1;i<=n;i++)
  f>>A[i].out>>A[i].in;
 }
void solve()
 {
 ofstream g("harta.out");
 int i,j,m=0;
 for(i=1;i<=n;i++)
  for(j=1;j<=n&&A[i].out;j++)
   {
   if(i==j) continue;
   if(A[j].in&&!M[j][i]) //daca pot sa bag o muchie spre j
    {
	m++;
	M[i][j]=true;
	--A[i].out;
	--A[j].in;
    }
   }
 g<<m<<endl;
 for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
   if(M[i][j])
	g<<i<<" "<<j<<endl;
 }
int main()
 {
 read();
 solve();
 }