Pagini recente » Cod sursa (job #1066896) | Cod sursa (job #2144971) | Cod sursa (job #2134380) | Cod sursa (job #3156139) | Cod sursa (job #2336886)
#include <fstream>
#define input "cuburi2.in"
#define output "cuburi2.out"
using namespace std;
ifstream in(input);
ofstream out(output);
int N, M;
int c_n[5005];
int Abs(int a)
{
return a < 0 ? -a : a;
}
void Read_And_Solve()
{
if(N > 5000) return;
in >> N >> M;
for (int i = 1; i <= N; i++)
in >> c_n[i];
for (int i = 1; i <= M; i++)
{
int st, dr;
in >> st >> dr;
int poz = -1, sum = -1;
// Aleg pe rand fiecare pozitie ca varianta posibila
for (int k = st; k <= dr; k++)
{
int local_sum = 0;
for (int k1 = st; k1 <= dr; k1++)
local_sum += Abs(k - k1) * c_n[k1];
if (sum == -1) sum = local_sum, poz = k;
else if (sum > local_sum) sum = local_sum, poz = k;
}
out << poz << " " << sum << "\n";
}
}
int main()
{
Read_And_Solve();
return 0;
}