Cod sursa(job #1403144)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 27 martie 2015 03:50:17
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
#include<list>
#define MOD 51223
using namespace std;
list<int>L[55500];
list<int>::iterator it;
int n,m,i,j,a,b,nr,ok,v[2000];
FILE *f,*g;
int main(){
    f=fopen("oite.in","r");
    g=fopen("oite.out","w");
    fscanf(f,"%d%d",&n,&m);
    for(i=1;i<=n;i++){
        fscanf(f,"%d",&v[i]);
    }
    for(i=1;i<=n;i++){
        for(j=i+1;j<=n;j++){
            a=m-v[i]-v[j];
            if(a>=0){
                b=a%MOD;
                ok=0;
                for(it=L[b].begin();it!=L[b].end();it++){
                    if(*it==a){
                        ok=1;
                        break;
                    }
                }
                if(ok)
                    nr++;
            }
        }
        for(j=1;j<=i-1;j++){
            a=v[i]+v[j];
            L[a%MOD].push_back(a);
        }
    }
    fprintf(g,"%d",nr);



    fclose(f);
    fclose(g);
    return 0;
}