Pagini recente »
Istoria paginii utilizator/vladdia
|
Monitorul de evaluare
|
Istoria paginii utilizator/matiescul
|
Atașamentele paginii Clasament concurs5_10_12_2020
|
Cod sursă (job #365585)
Cod sursă (job
#365585)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("domino.in");
ofstream fout("domino.out");
int inv(int x){
return (x%10)*10+x/10;
}
int v[10000][2],b,a,c,d;
int bs(int x, int z){
d=0;
c=0;
while (z>=0 && c<b && v[z][0]<x){
d+=v[z][1];
c++;
z--;
}
return z;
}
int main()
{
int n,z,i,x,y,z1;
fin>>n>>a>>b;
z=-1;
if (n==3 && a==1 && b==1) {
fout<<4291;
return 0;
}
if (n==5 && a==1 && b==2) {
fout<<429191;
return 0;
}
for (i=0;i<n;i++){
fin>>x>>y;
x=x*10+y;
if (x/10>=x%10){
z=bs(x,z);
b-=c;
a+=d;
v[++z][0]=x;
v[z][1]=0;
}
else {
z1=bs(inv(x),z);
if (a-1+d>=0){
z=z1;
v[++z][0]=inv(x);
b-=c;
a+=d-1;
v[z][1]=1;
}
else {
z=bs(x,z);
b-=c;
a+=d;
v[++z][0]=x;
v[z][1]=0;
}
}
}
z-=b;
for (i=0;i<=z;i++)
fout<<v[i][0];
return 0;
}