Cod sursa(job #2975795)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 7 februarie 2023 16:30:24
Problema Oite Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <algorithm>
#include <vector>
#define MOD 1300703
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
int i, j, n, m, st, dr, sum, S, mid, K, nr, rest, mod, i1, j1, k, ok;
int v[101];
vector <pair<int, int>> s[MOD+2];
int main() {
    cin>>n>>S;
    for(i=1;i<=n;i++)
        cin>>v[i];
    for(i=1;i<n;i++){
        for(j=i+1;j<=n;j++){
            rest=S-v[i]-v[j];
            if(rest>0){
                mod=rest%MOD;
                for(k=0;k<s[mod].size();k++){
                    if(s[mod][k].first==rest){
                        nr+=s[mod][k].second;
                    }
                }
            }
        }
         for(j1=1;j1<i;j1++){
                ok=0;
                mod=(v[i]+v[j1])%MOD;
                for(k=0;k<s[mod].size();k++){
                    if(s[mod][k].first==v[i]+v[j1]){
                        ok=1;
                        s[mod][k].second++;
                    }
                }
                if(ok==0){
                    s[mod].push_back({v[i]+v[j1], 1});
                }
            }
    }
    cout<<nr;
}