Pagini recente »
Statistici Radulea Alex Grigore (Gregoras)
|
Istoria paginii utilizator/zoro
|
Istoria paginii utilizator/mateic
|
Cod sursă (job #446779)
|
Cod sursă (job #210321)
Cod sursă (job
#210321)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
unsigned int v[100005];
int main()
{
ifstream in("lanterna.in");
// Citesc nr de oameni
unsigned int n;
in >> n;
// Citesc timpii
for(unsigned int i = 0; i < n; ++i)
in >> v[i];
in.close();
// Sortez timpii
sort(v, v + n);
// Daca primul merge cu toti, timpul este suma timpiilor celorlalti
// cu timpul primului de n - 1 ori.
unsigned long long int timp = (v[0] * (n - 2));
for(unsigned int i = 1; i < n; ++i)
timp += v[i];
// Caut un timp mai mic
unsigned long long int timpMinim = timp;
// Folosesc calatorul 1 si 2 pentru a duce mai rapid oamenii
for(unsigned int i = n - 2; i >= 2; i -= 2) {
timp -= v[i] + v[0] - 2 * v[1];
if(timp < timpMinim)
timpMinim = timp;
}
ofstream out("lanterna.out");
out << timpMinim;
out.close();
return 0;
}