Pagini recente »
Rating Cristi Barbu (cryspokemon)
|
Rating C Bosnegeanu Gabriel (DaniMocanu)
|
Monitorul de evaluare
|
Istoria paginii utilizator/eduard6421
|
Cod sursă (job #321824)
Cod sursă (job
#321824)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("domino.in");
ofstream out ("domino.out");
struct dom {
short x1,x2,l,c;
};
dom v[10001];
bool ord (dom a,dom b)
{
if (a.x1<b.x1)
return false;
else if (a.x1==b.x1)
{
if (a.x2<b.x2)
return false;
return true;
}
return true;
}
bool ord1 (dom a,dom b)
{
if (a.c<b.c && a.x1!=0 && b.x1!=0)
return true;
else if (a.c>b.c && a.x1!=0 && b.x1!=0)
return false;
}
int main()
{
int n,k1,k2,i;
in>>n>>k1>>k2;
for (i=1;i<=n;i++)
{
in>>v[i].x1>>v[i].x2;
v[i].l=0;
v[i].c=i;
if (v[i].x2>v[i].x1)
{
swap(v[i].x2,v[i].x1);
v[i].l=1;
}
}
sort (v+1,v+n+1,ord);
i=0;
int dif=n-k2+1;
for (i=n;i>=dif;i--)
{
v[i].x1=0;
v[i].x2=0;
}
i=k1+1;
for (;i<=dif;i++)
{
if (v[i].x1==0)
break;
if (v[i].l==1)
swap(v[i].x1,v[i].x2);
}
sort(v+1,v+dif,ord1);
for (i=1;i<=dif-1;i++)
{
out<<v[i].x1<<v[i].x2;
}
return 0;
}