Submission #1285536

#TimeUsernameProblemLanguageResultExecution timeMemory
1285536HoriaHaivasPairs (IOI07_pairs)C++20
30 / 100
18 ms1364 KiB
#include<bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "
#pragma GCC optimize("Ofast")
#define int long long

using namespace std;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int range_rng(int l, int r)
{
    return uniform_int_distribution<int>(l,r)(rng);
}

/*s
struct nush
{
    int val;
    int poz;
};

bool cmp(nush a, nush b)
{
    return a.val<b.val;
}
*/

int v[100005];
int ans[100005];

signed main()
{
    /*
    ifstream fin("camere.in");
    ofstream fout("camere.out");
    */
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int b,n,m,d,i,ans,l,r,pas,lim;
    cin >> b >> n >> d >> m;
    if (b==1)
    {
        for (i=1;i<=n;i++)
        {
             cin >> v[i];
        }
        sort(v+1,v+1+n);
        ans=0;
        for (i=1;i<=n;i++)
        {
             l=0;
             lim=v[i]-d;
             pas=(1<<17);
             while (pas)
             {
                 if (l+pas<=n && v[l+pas]<lim)
                     l+=pas;
                 pas=pas/2;
             }
             l++;
             r=0;
             lim=v[i]+d;
             pas=(1<<17);
             while (pas)
             {
                 if (r+pas<=n && v[r+pas]<=lim)
                     r+=pas;
                 pas=pas/2;
             }
             ans+=r-l+1-1;
        }
        cout << ans/2;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...