Pagini recente »
Clasament minim-10-prb
|
Istoria paginii runda/cel_mai_greuuuuu
|
Istoria paginii runda/9_1
|
Cod sursă (job #294402)
|
Cod sursă (job #809951)
Cod sursă (job
#809951)
#include<bits/stdc++.h>
using namespace std;
ifstream in("domino.in");
ofstream out("domino.out");
int N,K1,K2;
vector<pair<int,int>>p;
int main()
{
in>>N>>K1>>K2;
for(int i=0;i<N;i++)
{
int a,b;
in>>a>>b;
p.push_back({a,b});
}
vector<int>v;
for(auto &x:p)
v.push_back(max(x.first,x.second));
vector<pair<int,int>>diff;
for(int i=0;i<N;i++)
diff.push_back({abs(p[i].first-p[i].second),i});
sort(diff.rbegin(),diff.rend());
vector<bool>elim(N,0);
for(int i=0;i<K2;i++)
elim[diff[i].second]=1;
int rot=0;
for(int i=0;i<N&&rot<K1;i++)
if(!elim[i]&&p[i].first<p[i].second)
{
swap(p[i].first,p[i].second);
rot++;
}
v.clear();
for(int i=0;i<N;i++)
if(!elim[i])
v.push_back(p[i].first);
sort(v.rbegin(),v.rend());
for(auto x:v)
out<<x;
}