Pagini recente » Cod sursa (job #2547645) | Cod sursa (job #1152790) | Cod sursa (job #2861539) | Cod sursa (job #1390914) | Cod sursa (job #2439949)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("roata.in");
ofstream fout("roata.out");
const int nmax = 100001;
long long n, v[nmax], o[nmax], a[nmax];
long long suma;
bool ok = false;
long long p;
void read()
{
fin >> n;
fin >> p;
for(int i = 1; i <= p; ++i)
{
fin >> v[i];
suma += v[i];
o[i] = i;
a[i] = v[i];
}
}
void solve()
{
fout << suma << "\n";
if(n >= p)
{
int rez, poz = 0, minim = 200005;
for(int i = 1; i <= p; ++i)
{
poz = 0, minim = 200005;
for(int j = 1; j <= p; ++j)
{
if(a[j] < minim && a[j] != -1)
{
minim = a[j];
poz = j;
}
}
fout << poz << " ";
a[poz] = -1;
rez = poz;
}
fout << "\n" << rez;
}
else
{
for(int i = n + 1; i <= p; ++i)
{
int minim = 200005, poz = 0;
for(int j = 1; j <= n; ++j)
{
if(a[j] < minim)
{
minim = a[j];
poz = j;
}
}
fout << o[poz] << " ";
for(int j = 1; j <= n; ++j)
a[j] -= minim;
a[poz] = v[i];
o[poz] = o[i];
}
int rez, poz = 0, minim = 200005;
for(int i = 1; i <= n; ++i)
{
poz = 0, minim = 200005;
for(int j = 1; j <= n; ++j)
{
if(a[j] < minim && a[j] != -1)
{
minim = a[j];
poz = j;
}
}
fout << o[poz] << " ";
a[poz] = -1;
rez = poz;
}
fout << "\n" << rez;
}
}
int main()
{
read();
solve();
return 0;
}