Cod sursă (job #343836)

Utilizator avatar raverokk IO Maaaaaaa raverokk IP ascuns
Problemă Lanterna Compilator cpp | 1,58 kb
Rundă Arhiva de probleme Status evaluat
Dată 26 ian. 2018 12:32:35 Scor 0
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("lanterna.in");
ofstream g("lanterna.out");
long long t[100000],aux,b[1000000];
long n;
int f1[100000];
void citire(long &n)
{    f>>n;
     for(int i=1;i<=n;i++)
        f>>t[i];

}
void ordonare(long long t[],long n)
{ int i,j;
    for(i=1;i<n;i++)
        for(j=1;j<=n;j++)
              if(t[i]>t[j]) { aux=t[i];
                              t[i]=t[j];
                              t[j]=aux;
                            }
}
int min(long n)
{ int i,minn;
minn=b[1];
{
    for(i=2;i<=n;i++)
        if(b[i]<minn) minn=b[i];
}
return minn;
}
int max(long a,long b)
{
    if(a>b) return a;
      else return b;
}
void drum(long k,long long &minim,int s,long m)
{ int i,j;

if(m!=0)
{ordonare(b,m);
f1[b[1]]=0;
s=s+b[1];
k++;
m--;}
    if(k==0){if(minim==0) minim=s;
                 else if((minim>s)&&(s>0)) minim=s;

                 }
     else { for(i=1;i<=n;i++)
              { if(f1[i]==0)
                  for(j=1;j<=n;j++)
                    if((i!=j)&&(f1[j]==0)) { b[++m]=t[i];
                                             b[++m]=t[j];
                                             f1[t[i]]=1;
                                             f1[t[j]]=1;



                                             s=s+max(t[i],t[j]);

                                             drum(k-2,minim,s,m);

                                           }


          }


}


}
int main()
{long long minim=0;
 citire(n);
 ordonare(t,n);
 drum(n,minim,0,0);
 g<<minim;

}