Cod sursa(job #850506)

Utilizator OviTzu24Carabian Ovidiu OviTzu24 Data 8 ianuarie 2013 16:26:34
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
//map STL
#include <stdio.h>
#include <map>
#include <algorithm>
#include<fstream>
using namespace std;
#define nmax 1030
#define p 666013
 ifstream f("oite.in");
 ofstream g("oite.out");;
long n, s, i, v[nmax], j, rez, poz, a, b, ra, rb;
map <int, int> ma1[p+10];
 
void citire()
{
    f>>n>>s;
    for (i=1;i<=n;i++)
        f>>v[i];
}
 
void rezolvare()
{
    ma1[(v[1]+v[2])%p][v[1]+v[2]]++;
    for (poz=3;poz<=n-1;poz++)
    {
        for (i=poz+1;i<=n;i++)
            if (s>v[poz]+v[i])
                rez+=ma1[(s-v[poz]-v[i])%p][s-v[poz]-v[i]];
        for (i=1;i<=poz-1;i++)
            ma1[(v[i]+v[poz])%p][v[i]+v[poz]]++;
    }
   g<<rez;
}
 
int main()
{
   
    citire();
    sort(v+1,v+1+n);
    rezolvare();
    return 0;
}