Pagini recente » Cod sursa (job #1974097) | Cod sursa (job #2584911) | Cod sursa (job #2476708) | Cod sursa (job #1468897) | Cod sursa (job #3133387)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("roata.in");
ofstream fout("roata.out");
const short Nmax = 360;
const int Vmax = 100000, Pmax = 100000;
short n, pos;
int p, v[Nmax], crt, valmin, ind[Nmax], ord[Pmax], ordcrt;
long long sumt;
int main()
{
fin >> n >> p;
if (p < n) {
for (short i = 0; i < p; i++) {
fin >> v[i];
ind[i] = i + 1;
sumt += v[i];
}
for (short i = p; i < n; i++) {
v[i] = Vmax + 1;
}
}
else {
for (short i = 0; i < n; i++) {
fin >> v[i];
ind[i] = i + 1;
sumt += v[i];
}
crt = n;
while (crt < p) {
valmin = Vmax + 1;
for (short j = 0; j < n; j++) {
if (v[j] < valmin)
valmin = v[j];
}
for (short j = 0; j < n; j++) {
v[j] -= valmin;
if (v[j] == 0) {
ord[ordcrt++] = ind[j];
if (crt < p) {
fin >> v[j];
sumt += v[j];
ind[j] = (++crt);
}
else v[j] = Vmax + 1;
}
}
}
}
fout << sumt << '\n';
int lc;
while (valmin != Vmax + 1) {
valmin = Vmax + 1;
for (short j = 0; j < n; j++) {
if (v[j] < valmin)
valmin = v[j];
}
if (valmin != Vmax + 1) {
for (short j = 0; j < n; j++) {
if (v[j] == valmin) {
lc = j + 1;
v[j] = Vmax + 1;
ord[ordcrt++] = ind[j];
}
}
}
}
for (int i = 0; i < p; i++)
fout << ord[i] << ' ';
fout << '\n' << lc;
return 0;
}