Cod sursa(job #3315345)

Utilizator cristiz123456Zoescu Cristian cristiz123456 Data 13 octombrie 2025 21:46:17
Problema Divk Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("divk.in");
ofstream cout("divk.out");
struct pereche{
    int a,b;
};
pereche s[500000];

bool cmp(pereche a, pereche b) {
	return a.a < b.a || (a.a == b.a && a.b < b.b);
}

int main()
{
    int n, a, b, k, i, x, nr, sec = 0, j, indice, ci;
    cin >> n >> k >> a >> b;
    for(i = 1;i <= n;i++)
    {
        cin >> x;
        s[i].a += s[i - 1].a + x;
        s[i].a %= k;
        s[i].b = i;
    }
    sort(s,s + n + 2,cmp);
    for(i = 1;i <= n;i++)
    {
        nr = s[i].a;
        j = s[i + 1].b;
        indice = s[i].b;
        ci = i;
        i++;
        while(s[i].a == nr)
        {
            if(j - indice >= a && j - indice <= b)
            {
                sec++;
                printf("%d %d\n",j,indice);
            }
            i++;
            j = s[i].b;
        }
        i = ci;
    }
    cout << sec;
    return 0;
}