Cod sursa(job #125473)

Utilizator victorsbVictor Rusu victorsb Data 20 ianuarie 2008 12:59:08
Problema Inundatii Scor 60
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 11-12 Marime 0.84 kb
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

#define Nmax 20015
#define INF 0x3f3f3f3f
#define ll long long

int n;
int sir[3][Nmax];
ll sol, sum1, sum2;

void citire()
{
	int i;

	scanf("%d\n", &n);
	for (i = 1; i <= n; ++i)
		scanf("%d %d %d\n", &sir[0][i], &sir[1][i], &sir[2][i]);
}

void solve()
{
	int i, j, mid;
	ll sum;

	for (i = 0; i <= 2; ++i)
	{
		sum = 0;

		mid = (n + 1) / 2;

        for (j = 2; j <= mid; ++j)
			sum += ((ll)(j - 1)) * (sir[i][j - 1] - sir[i][j]);

		for (j = n - 1; j >= mid; --j)
			sum += ((ll)(n - j)) * (sir[i][j] - sir[i][j + 1]);

		sum += ((ll)(mid - 1)) * mid / 2 + ((ll)(n - mid)) * (n - mid + 1) / 2;

		sol += sum;
	}

	printf("%lld\n", sol);
}

int main()
{
	freopen("inundatii.in", "r", stdin);
	freopen("inundatii.out", "w", stdout);

	citire();
	solve();
	
	return 0;
}