Submission #40719

# Submission time Handle Problem Language Result Execution time Memory
40719 2018-02-07T00:21:50 Z Hassoony Relativnost (COCI15_relativnost) C++14
140 / 140
3546 ms 16680 KB
#include <stdio.h>
#include <stdlib.h>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double D;
const ll inf=(1ll<<61);
const int mod=10007;
const int MX=1e5+9;
int n,c,a[MX],b[MX],tree[2*MX][21];
void update(int x){
    memset(tree[x],0,sizeof(tree[x]));
    for(int i=0;i<=c;i++){
        for(int j=0;j<=c;j++){
            int sz=i+j;sz=min(sz,c);
            tree[x][sz]=(tree[x][sz]+tree[x*2][i]*tree[x*2+1][j])%mod;
        }
    }
}
void update1(int x){
    x+=n;
    memset(tree[x],0,sizeof(tree[x]));
    tree[x][0]=b[x-n];
    tree[x][1]=a[x-n];
    for(x/=2;x>0;x/=2)update(x);
}
int main(){
    cin>>n>>c;
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        a[i]%=mod;
    }
    for(int i=0;i<n;i++){
        scanf("%d",&b[i]);
        b[i]%=mod;
    }
    for(int i=0;i<n;i++){
        tree[i+n][0]=b[i];
        tree[i+n][1]=a[i];
    }
    for(int i=n-1;i>=1;i--)update(i);
    int q,i,l,r;
    scanf("%d",&q);
    while(q--){
        scanf("%d%d%d",&i,&l,&r);
        a[i-1]=l%mod;
        b[i-1]=r%mod;
        update1(i-1);
        printf("%d\n",tree[1][c]%mod);
    }
}

Compilation message

relativnost.cpp: In function 'int main()':
relativnost.cpp:30:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&a[i]);
                          ^
relativnost.cpp:34:26: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&b[i]);
                          ^
relativnost.cpp:43:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&q);
                   ^
relativnost.cpp:45:33: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d%d",&i,&l,&r);
                                 ^
# Verdict Execution time Memory Grader output
1 Correct 9 ms 528 KB Output is correct
2 Correct 15 ms 608 KB Output is correct
3 Correct 26 ms 608 KB Output is correct
4 Correct 481 ms 9852 KB Output is correct
5 Correct 1543 ms 15672 KB Output is correct
6 Correct 2271 ms 16680 KB Output is correct
7 Correct 998 ms 16680 KB Output is correct
8 Correct 559 ms 16680 KB Output is correct
9 Correct 942 ms 16680 KB Output is correct
10 Correct 3546 ms 16680 KB Output is correct