Pagini recente »
Diferențe pentru runda/pregatire_olimpiadalocala_2017 între reviziile 6 și 5
|
Borderou de evaluare (job #610412)
|
tema-2-clasa-a-6a
|
Borderou de evaluare (job #290147)
|
Cod sursă (job #319196)
Cod sursă (job
#319196)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("domino.in");
ofstream out("domino.out");
int n,rot,el;
int lastSt,lastDr;
bool lastRot;
struct piesa
{
int st,dr;
bool rotit;
} v[10005];
int sz;
int main()
{
in>>n>>rot>>el;
for(int i = 1; i<=n; i++)
{
int st,dr;
in>>st>>dr;
bool rotit=false;
if(st<dr && rot)
{
int temp=st;
st=dr;
dr=temp;
rotit=true;
}
bool ok=true;
if(i>1 && el)
{
if(st>lastSt || (st==lastSt && dr>lastDr))
{
el--;
//cout<<"elimin: "<<lastSt<<' '<<lastDr<<'\n';
ok=false;
}
else if(st==lastSt && dr==lastDr)
{
if(lastRot==true && rotit==false)
{
el--;
//cout<<"elimin: "<<lastSt<<' '<<lastDr<<'\n';
ok=false;
}
}
}
if(ok && i>1)
{
v[++sz].st=lastSt;
v[sz].dr=lastDr;
v[sz].rotit=lastRot;
if(lastRot==true)
rot--;
}
lastSt=st;
lastDr=dr;
lastRot=rotit;
}
v[++sz].dr=lastDr;
v[sz].st=lastSt;
v[sz].rotit=lastRot;
while(el)
{
v[sz].dr=0;
v[sz--].st=0;
}
for(int i = 1;i<=sz;i++)
{
out<<v[i].st<<v[i].dr;
}
return 0;
}