Pagini recente » Borderou de evaluare (job #279411) | Scurt ghid pentru folosirea mediului Code::Blocks | Cod sursa (job #2227528)
#include <iostream>
#include <fstream.h>
#include <time.h>
ifstream f("jetoane.in");
ofstream g("jetoane.out");
unsigned int a[28001], b[28001], i, j, ii, jj, aux, n, min=0, max, s1, s2, m;
int poz (int ls, int ld)
{
i=ls;
j=ld;
ii=0;
jj=-1;
while (i<j)
{
if (a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
aux=-ii;
ii=-jj;
jj=aux;
}
i+=ii;
j+=jj;
}
return i;
}
void qsort(int ls, int ld)
{
int p;
if (ls<ld)
{
p=poz(ls,ld);
qsort (ls, p-1);
qsort (p+1, ld);
}
}
int pozl (int ls, int ld)
{
i=ls;
j=ld;
ii=0;
jj=-1;
while (i<j)
{
if (b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
aux=-ii;
ii=-jj;
jj=aux;
}
i+=ii;
j+=jj;
}
return i;
}
void qsortl(int ls, int ld)
{
int p;
if (ls<ld)
{
p=pozl(ls,ld);
qsortl (ls, p-1);
qsortl (p+1, ld);
}
}
int main(void)
{
f>>m>>n;
for (i=1;i<=m;i++)
f>>a[i];
for (i=1;i<=n;i++)
f>>b[i];
qsort (1,m);
qsortl (1,n); //citiri si sortari de siruri.
for (i=1;i<=m;i++)
{
for (j=1;a[i]>=b[j];j++)
if (a[i]==b[j])
{
min=a[i];
break;
}
if (min) //aflarea minimului
break;
}
for (i=m;i>0;i--)
{
for (j=n;a[i]<=b[j];j--)
if (a[i]==b[j])
{
max=a[i];
break;
}
if (max) //aflarea maximului
break;
}
for (i=1;a[i]<min;i++)
s1++;
for (i=1;b[i]<min;i++)
s2++;
for (i=m;a[i]>max;i--)
s1++;
for (i=n;b[i]>max;i--)
s2++;
g<<min<<" "<<max<<" ";
if (s1==s2)
g<<0;
else
if (s1>s2)
g<<1;
else
g<<2;
f.close();
g.close();
return 0;
}