Cod sursa(job #1346332)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 18 februarie 2015 10:25:00
Problema P-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("psir.in");
ofstream out("psir.out");

const int nmax = 2006;
const long long mod = 4294967296;
int v[nmax], d[nmax][2], n, p;
long long rasp;

/*
d[i][0 / 1] = numarul de zigzaguri care se termina in v[i], 1- ultima oara am urcat, 0 ultima oara am coborat;
*/

int main(){
	int player_unu=0;

	in>>n;
	for(int i = 1; i<=n; i++)
	{
		in>>v[i];

		for(int j = i - 1; j>0; j--)
		{
			if(v[i]<v[j])
			{
				d[i][0] += (d[j][1] + 1);
			}

			if(v[j]<v[i])
			{
				d[i][1] += (d[j][0] + 1);
			}
		}
	}

	for(int i = 1; i<=n; i++)
		rasp += (long long)(d[i][0] + d[i][1]);

	sort(v + 1, v + n + 1);

	for(int i = 1; i<=n + 1; i++)
	{
		if(v[i]==v[i - 1])
		{
			p++;
		}
		else
		{
			rasp += (long long)(p * (p - 1) / 2);

			p = 1;
		}
	}

	out<<rasp % mod<<'\n';

	return player_unu;
}