Volta.guideVolta.guide
Home
Introduzione
Materiale
Risorse
Algobadge
Home
Introduzione
Materiale
Risorse
Algobadge
  • Do not gather!

Do not gather!

Link: https://training.olinfo.it/task/ois_gatherings
Fonte: OIS 2021 round 3

Categoria

sliding window

Problema facile non ovvio

Hint 1:

Sliding window


Sketch di soluzione:

Sliding window, l è l'elemento per cui calcolo il numero di elementi più vicini di D, r è l'elemento più lontano con P[r]-P[l] <= D;


Soluzione:
#include <bits/stdc++.h>
using namespace std;

int main(){
  int n, d; cin >> n >> d;
  vector<int> p(n); for(int i = 0; i<n; i++) cin >> p[i];
  int l = 0; int r = 0;
  long long sol = 0;
  for(int l = 0; l<n-1; l++){
    while(r < n && p[r]-p[l] < d) r++;
    sol += (long long) r-l-1;
  }
  cout << sol << '\n';
  return 0;
}

Last Updated:
Contributors: nik-din