Cod sursa(job #2227528)

Utilizator Lidia10Andrei Lidia Lidia10 Data 31 iulie 2018 23:50:38
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.26 kb
#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;
    }