Cod sursa(job #2336886)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 5 februarie 2019 17:17:30
Problema Cuburi2 Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#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;
}