Pagini recente » Cod sursa (job #2203344) | Cod sursa (job #1721321) | Cod sursa (job #313033) | Cod sursa (job #1643476) | Cod sursa (job #2213882)
#include <bits/stdc++.h>
using namespace std;
ifstream in("harta.in");
ofstream out("harta.out");
const int NMAX = 100;
int a[NMAX+2], b[NMAX+2], gata[NMAX+2][NMAX+2];
int N;
int main()
{
in >> N;
for( int i = 1; i <= N; ++i ) in >> a[i] >> b[i];
out << accumulate(a+1, a+N+1, 0) << '\n';
for( int i = 1; i <= N; ++i ) {
vector<pair<int,int>> vec;
for_each(b+1, b+N+1, [i, &vec, cnt = 0](int grad) mutable {
if( ++cnt != i && grad )
vec.push_back({grad, cnt});
});
sort(vec.begin(), vec.end());
reverse(vec.begin(), vec.end());
for( int j = 0; a[i]; ++j )
out << i << ' ' << vec[j].second << '\n',
--a[i],
--b[ vec[j].second ];
}
return 0;
}