Submission #1135930

#TimeUsernameProblemLanguageResultExecution timeMemory
1135930MateiKing80Watering can (POI13_kon)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;
#define int ll
const int NMAX = 300000, B = 700;
ll N, K, t[NMAX + 5], zeros[NMAX + 5], ans[NMAX + 5];
int mp[332][NMAX + 5];

void inicjuj(int n, int k, int *D)
{
    for(int i = 0; i < n; i ++)
        t[i] = D[i];
    N = n, K = k;
    for(int i = 0; i < n; i ++)
    {
        if(K >= t[i] && K - t[i] <= NMAX)
            mp[i / B][-(K - t[i]) + NMAX] ++;
        if(t[i] >= K)
            ans[i / B] ++;
    }
}

void podlej(int a, int b)
{
    int from = a/B, to = (b / B);
    for(int i = from; i <= to; i ++)
    {
        if(a <= i * B && b >= (i + 1) * B - 1)
        {
            zeros[i]++;
            ans[i] += mp[i][NMAX - zeros[i]];
        }
        else
        {
            ans[i] = 0;
            for(int j = i * B; j / B == i && j < N; j ++)
            {
                if(K >= t[j] && K - t[j] <= NMAX)
                    mp[i][-(K - t[j]) + NMAX] --;
                t[j] += zeros[i];
                if(j >= a && j <= b)
                    t[j] ++;
                if(K >= t[j] && K - t[j] <= NMAX)
                    mp[i][- (K - t[j]) + NMAX] ++;
                if(t[j] >= K)
                    ans[i]++;
            }
            zeros[i] = 0;
        }
    }
}

int dojrzale(int a, int b)
{
    int rasp = 0;
    int from = a / B, to = (b / B);
    for(int i = from; i <= to; i ++)
    {
        if(a <= i * B && b >= (i + 1) * B - 1)
            rasp += ans[i];
        else
        {
            for(int j = max(a, i * B); j / B == i && j <= b; j ++)
                rasp += (t[j] + zeros[i] >= K);
        }
    }
    return rasp;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccCKfZzJ.o: in function `main':
kongrader.cpp:(.text.startup+0xd8): undefined reference to `inicjuj(int, int, int*)'
/usr/bin/ld: kongrader.cpp:(.text.startup+0x153): undefined reference to `podlej(int, int)'
/usr/bin/ld: kongrader.cpp:(.text.startup+0x166): undefined reference to `dojrzale(int, int)'
collect2: error: ld returned 1 exit status