Cod sursa(job #2629184)

Utilizator isa_tudor_andreiAndrei Tudor isa_tudor_andrei Data 19 iunie 2020 13:49:59
Problema Oite Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>

using namespace std;

ifstream fin("oite.in");
ofstream fout("oite.out");

const int NMAX = 1024;

unordered_map<long long, int> lhs;

long long v[NMAX + 1];

int main() {
	long long L;
	int n;
	fin>>n>>L;
	for( int i = 1; i <= n; i ++ ) {
		fin>>v[i];
	}

	for( int i = 1; i <= n - 3; i ++ ) 
		for( int j = i + 1; j <= n - 2; j ++ ) 
			lhs[v[i] + v[j]] ++;

	long long ans = 0;

	for( int i = n - 1; i >= 3; i -- ) {
		for( int j = i + 1; j <= n; j ++ ) 
			ans += lhs[L - v[i] - v[j]];
		
		for( int j = i - 2; j >= 1; j -- ) 
			lhs[v[j] + v[i - 1]] --;
	}

	fout<<ans;
}