Cod sursa(job #1875397)

Utilizator MiricaMateiMirica Matei MiricaMatei Data 11 februarie 2017 01:08:47
Problema Taramul Nicaieri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <algorithm>
using namespace std;
struct aux{
  int val, poz;
};
bool cmp(aux a, aux b){
  return a.val > b.val;
}
aux a[105];
int in[105], out[105];
int main(){
  freopen("harta.in", "r", stdin);
  freopen("harta.out", "w", stdout);
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i)
    scanf("%d%d", &in[i], &out[i]);
  for (int i = 1; i <= n; ++i){
    for (int j = 1; j <= n; ++j)
    a[j] = {out[j], j};
    sort(a + 1, a + n + 1, cmp);
    for (int j = 1; j <= n && in[i]; ++j)
      if (a[j].poz != i){
        printf("%d %d\n", i, a[j].poz);
        out[a[j].poz]--;
        in[i]--;
      }
  }
  return 0;
}