Cod sursa(job #299355)

Utilizator HaggisRanca Razvan Haggis Data 6 aprilie 2009 18:38:33
Problema Deque Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream>
#include<algorithm>
#include<vector>
#include<math.h>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
long long n,k,nr,i,j,m,l,q,ma1,ma2;
vector<int> v;
vector<int> s;

bool comp(int i, int j)
{
	return(v[i]<v[j]);
}
int main ()
{
	in>>n>>m;
	for(i=1;i<=n;i++)
		{
			in>>j;
			v.push_back(j);
			s.push_back(i-1);
		}
	sort(s.begin(),s.end(),comp);
		l=n-m+1;
		for(i=0;i<l;i++)
		{
			q=m;
			if(s[i]<m-1)
				q-=(m-s[i]-1);
			if(s[i]>n-m)
				q-=(s[i]-n+m);
			
			ma1=0;
			ma2=0;
			
			for(j=0;j<i;j++)
				{
					if(s[j]-s[i]<m && s[j]-s[i]>0)
						if((m-abs(s[j]-s[i]))>ma1)
							ma1=(m-abs(s[j]-s[i]));
					if(s[j]-s[i]>(-1)*m && s[j]-s[i]<0)
						if((m-abs(s[j]-s[i]))>ma2)
							ma2=(m-abs(s[j]-s[i]));
				}
			q-=ma1+ma2;
			if(q>0)
				nr+=q*v[s[i]];
		}
		out<<nr;
		return 0;

}