Cod sursa(job #2278116)
Utilizator | Data | 7 noiembrie 2018 11:58:33 | |
---|---|---|---|
Problema | Lapte | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 3.43 kb |
#include <iostream>
using namespace std;
int n,c, a[105], b[105],la[105],lb[105],v[105],i,j,poza=1,pozb=1,ai[105],bi[105],auxi,aux,ok=-1;
int main()
{
cin>>n>>c;
for(i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
ai[i]=i;
bi[i]=i;
}
for(i=1;i<n;i++)
for(j=1+i;j<=n;j++)
{
if(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
auxi=ai[i];
ai[i]=ai[j];
ai[j]=auxi;
}
if(a[i]==a[j]&&b[i]<b[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
auxi=ai[i];
ai[i]=ai[j];
ai[j]=auxi;
}
if(b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
auxi=bi[i];
bi[i]=bi[j];
bi[j]=auxi;
}
if(b[i]==b[j]&&a[i]<a[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
auxi=bi[i];
bi[i]=bi[j];
bi[j]=auxi;
}
}
for(i=1;i<=n;i++)
{
cout<<b[i]<<" "<<bi[i]<<endl;
}
while(poza<c&&pozb<c)
{
if(ok==1)
{
while(poza<=pozb)
{
while(v[ai[1]]+a[1]<=v[ai[2]]+a[2])
{
la[poza]=ai[1];
poza++;
v[ai[1]]++;
}
i=2;
while(v[ai[1]]+a[1]>=v[ai[i]]+a[i]&&i<n)
i++;
auxi=ai[1];
aux=a[1];
for(j=1;j<i;j++)
{
a[j]=a[j+1];
ai[j]=ai[j+1];
}
a[i]=aux;
ai[i]=auxi;
i=2;
while(v[bi[1]]+b[1]>=v[bi[i]]+b[i]&&i<n)
i++;
auxi=bi[1];
aux=b[1];
for(j=1;j<i;j++)
{
b[j]=b[j+1];
bi[j]=bi[j+1];
}
b[i]=aux;
bi[i]=auxi;
}
ok=-1;
}
else
{
while(pozb<=poza)
{
while(v[bi[1]]+b[1]<=v[bi[2]]+b[2])
{
lb[pozb]=bi[1];
pozb++;
v[bi[1]]++;
}
i=2;
while(v[bi[1]]+b[1]>=v[bi[i]]+b[i]&&i<n)
i++;
auxi=bi[1];
aux=b[1];
for(j=1;j<i;j++)
{
b[j]=b[j+1];
bi[j]=bi[j+1];
}
b[i]=aux;
bi[i]=auxi;
i=2;
while(v[ai[1]]+a[1]>=v[ai[i]]+a[i]&&i<n)
i++;
auxi=ai[1];
aux=a[1];
for(j=1;j<i;j++)
{
a[j]=a[j+1];
ai[j]=ai[j+1];
}
a[i]=aux;
ai[i]=auxi;
}
ok=1;
}
}
for(i=1;i<=c;i++)
cout<<la[i]<<" ";
cout<<endl;
for(i=1;i<=c;i++)
cout<<lb[i]<<" ";
cout<<endl<<endl;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}