제출 #156146

#제출 시각아이디문제언어결과실행 시간메모리
156146mdn2002Relativnost (COCI15_relativnost)C++14
42 / 140
301 ms760 KiB
#include<bits/stdc++.h>
using namespace std;
long long mod=1e9+7;
long long n,c,a[1005],b[1005],q,dp[1005][35];
long long f(int x,int cal)
{
    if(x>=n)
    {
        if(cal>=c)return 1;
        else return 0;
    }
    if(dp[x][cal]!=-1)return dp[x][cal];
    long long num=0;
    num+=a[x]*f(x+1,min(c,(long long)cal+1));
    num%=10007;
    num+=b[x]*f(x+1,cal);
    num%=10007;
    return dp[x][cal]=num;
}
int main()
{
    cin>>n>>c;
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0;i<n;i++)cin>>b[i];
    cin>>q;
    for(int i=0;i<q;i++)
    {
        memset(dp,-1,sizeof dp);
        long long x,y,z;
        cin>>x>>y>>z;
        a[x-1]=y;
        b[x-1]=z;
        cout<<f(0,0)<<endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...