Pagini recente » Cod sursa (job #973046) | Cod sursa (job #422891) | Cod sursa (job #1261389) | Cod sursa (job #752467) | Cod sursa (job #1998318)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
int n,l,st,dr,mid,k,i,j,oite[1025],csum,alfa,beta,grupuri_de_oite,ok;
vector<pair<int,int> >sume[666014];
vector<int>nr[666014];
int main(){
in >> n >> l;
for( i = 1; i <= n; i ++ ){
in >> oite[i];
}
sume[(oite[1] + oite[2] ) %666013].push_back( make_pair (1,2));
nr[(oite[1] + oite[2] ) %666013 ].push_back(1);
for( i = 3; i <= n-1; i ++ ){
for( j = i+1; j <= n; j ++ ){
csum = l -oite[i] - oite[j];
for( k = 0; k < sume[csum%666013].size(); k ++ ){
if( oite[sume[csum%666013][k].first] + oite[sume[csum%666013][k].second] == csum ){
grupuri_de_oite+= nr[csum%666013][k];
}
}
}
for( j = 1; j <= i-1; j ++ ){
ok = 0;
for( k = 0; k < sume[ ( oite[i] + oite[j] ) %666013 ].size(); k++ ){
if( oite[sume[( oite[i] + oite[j] ) %666013][k].first] + oite[sume[( oite[i] + oite[j] ) %666013][k].second] == oite[i]+oite[j] ){
ok = 1;
nr[(oite[i] + oite[j] ) %666013][k]++;
}
}
if(ok == 0){
sume[ ( oite[i] + oite[j] ) %666013 ].push_back( make_pair(i,j) );
nr[(oite[i] + oite[j] ) %666013].push_back(1);
}
}
}
out<<grupuri_de_oite;
return 0;
}