Cod sursa(job #2951227)

Utilizator niculaandreiNicula Andrei Bogdan niculaandrei Data 5 decembrie 2022 18:56:00
Problema Taramul Nicaieri Scor 5
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("harta.in");
ofstream fout("harta.out");

const int N_MAX = 105;

int N;
pair<int, int> v[N_MAX], used[N_MAX];

vector<int> G[N_MAX];
int Ans;

int main()
{
    fin >> N;
    for (int i = 1; i <= N; i++) {
        fin >> v[i].first >> v[i].second;
        Ans += v[i].first + v[i].second;
    }
    for (int i = 1; i <= N; i++) {
        for (int j = N; j >= 1; j--) {
            if (i != j && v[i].first && v[j].second) {
                v[i].first--;
                v[j].second--;
                G[i].push_back(j);
            }
        }
    }
    fout << Ans / 2 << "\n";
    for (int i = 1; i <= N; i++) {
        //cout << v[i].first << " " << v[i].second << "\n";
        for (int j = 0; j < G[i].size(); j++) {
            fout << i << " " << G[i][j] << "\n";
        }
    }
    return 0;
}