Cod sursa(job #3281229)

Utilizator AlexandruBenescuAlexandru Benescu AlexandruBenescu Data 28 februarie 2025 18:21:36
Problema Taramul Nicaieri Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define L 105
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");

struct MS {
  int node, in, out;
};

int n, s, in[L];
MS v[L];

bool cmp(const MS &a, const MS &b) {
  return a.out > b.out;
}

int main() {
  fin >> n;
  for (int i = 1; i <= n; i++) {
    fin >> v[i].in >> v[i].out;
    v[i].node = i;
    s += v[i].in;
    in[i] = v[i].in;
  }

  fout << s << "\n";

  for (int i = 1; i <= n; i++) {
    sort(v + 1, v + n + 1, cmp);
    for (int j = 1; in[i] && j <= n; j++)
      if (v[j].out && i != v[j].node) {
        fout << i << " " << v[j].node << "\n";
        in[i]--;
        v[j].out--;
      }
  }
  return 0;
}