# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1113971 | jpfr12 | Relativnost (COCI15_relativnost) | C++17 | 4069 ms | 65536 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
typedef long long ll;
typedef unsigned int long long ull;
using namespace std;
ll MOD = 1e4+7;
//global
int N, C;
vector<ll> A;
vector<ll> B;
vector<vector<ll>> dp;
ll sol(int index, ll sum){
if(index == N) return sum >= C;
if(dp[index][sum] != -1) return dp[index][sum];
dp[index][sum] = (A[index]%MOD) * sol(index+1, sum+1);
dp[index][sum] %= MOD;
dp[index][sum] += (B[index]%MOD) * sol(index+1, sum);
return dp[index][sum];
}
//classes
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//stop
cin >> N >> C;
A.resize(N);
B.resize(N);
for(ll& i: A) cin >> i;
for(ll& i: B) cin >> i;
dp.resize(N, vector<ll>(N,-1));
int Q;
cin >> Q;
while(Q--){
int index;
ll a, b;
cin >> index >> a >> b;
A[index-1] = a;
B[index-1] = b;
cout << sol(0, 0LL) << '\n';
dp.assign(N, vector<ll>(N,-1));
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |