Cod sursa(job #3156131)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 10 octombrie 2023 17:27:59
Problema Taramul Nicaieri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;

const int NMAX = 103;
int in[NMAX], out[NMAX];

int main() {
	int n;
	scanf("%d", &n);
	int cnt = 0;
	for(int i = 1; i <= n; i++) {
		scanf("%d %d", &out[i], &in[i]);
		cnt += out[i];
	}

	printf("%d\n", cnt);

	for(int i = 1; i <= n; i++) {
		vector<pair<int, int>> v;
		for(int j = 1; j <= n; j++) {
			v.push_back({in[j], j});
		}
		sort(v.begin(), v.end(), [](pair<int, int> a, pair<int, int> b) {
			if(a.first == b.first)
				return a.second > b.second;
			return a.first > b.first;
		});
		for(int j = 0; j < n && out[i]; j++) {
			if(v[j].second != j+1) {
				printf("%d %d\n", i, v[j].second);
				in[v[j].second]--;
				out[i]--;
			}
		}
	}

}