Submission #973795

# Submission time Handle Problem Language Result Execution time Memory
973795 2024-05-02T11:01:57 Z sleepntsheep Relativnost (COCI15_relativnost) C
140 / 140
2976 ms 17412 KB
#include <stdio.h>

#define N 100000
#define C 20

const long long MOD = 10007;

int q, n, c, a[N], b[N], p, aa, bb;
int t[N<<1][C+1];

void base(int i)
{
    t[i+n][0] = b[i] % MOD;
    t[i+n][1] = a[i] % MOD;
}

void pul(int i)
{
    for (int j = 0; j <= c; ++j)
        t[i][j] = 0;
    for (int j = 0; j <= c; ++j)
    {
        for (int k = 0; k <= c; ++k)
        {
            int l = j+k<=c?j+k:c;
            t[i][l] = (t[i][l] + t[i<<1][j] * 1ll * t[i<<1|1][k] % MOD) % MOD;
        }
    }
}

int main()
{
    scanf("%d%d",&n,&c);

    for (int i = 0; i < n; ++i) scanf("%d", a+i);
    for (int i = 0; i < n; ++i) scanf("%d", b+i), base(i);
    for (int i = n; --i;) pul(i);

    scanf("%d", &q);
    while (q--)
    {
        scanf("%d%d%d", &p, &aa, &bb), --p;
        a[p] = aa, b[p] = bb;
        base(p);
        for (p+=n;p>>=1;) pul(p);

        printf("%d\n", t[1][c]);
    }
}

Compilation message

relativnost.c: In function 'main':
relativnost.c:33:5: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |     scanf("%d%d",&n,&c);
      |     ^~~~~~~~~~~~~~~~~~~
relativnost.c:35:33: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |     for (int i = 0; i < n; ++i) scanf("%d", a+i);
      |                                 ^~~~~~~~~~~~~~~~
relativnost.c:36:33: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |     for (int i = 0; i < n; ++i) scanf("%d", b+i), base(i);
      |                                 ^~~~~~~~~~~~~~~~
relativnost.c:39:5: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |     scanf("%d", &q);
      |     ^~~~~~~~~~~~~~~
relativnost.c:42:9: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |         scanf("%d%d%d", &p, &aa, &bb), --p;
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 6 ms 600 KB Output is correct
2 Correct 10 ms 348 KB Output is correct
3 Correct 22 ms 348 KB Output is correct
4 Correct 329 ms 10680 KB Output is correct
5 Correct 1217 ms 17236 KB Output is correct
6 Correct 1850 ms 17412 KB Output is correct
7 Correct 790 ms 12620 KB Output is correct
8 Correct 385 ms 16996 KB Output is correct
9 Correct 721 ms 14672 KB Output is correct
10 Correct 2976 ms 15104 KB Output is correct