# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
40717 | 2018-02-07T00:18:09 Z | Hassoony | Relativnost (COCI15_relativnost) | C++14 | 3578 ms | 16488 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=0;i<n;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
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 8 ms | 504 KB | Output isn't correct |
2 | Incorrect | 13 ms | 504 KB | Output isn't correct |
3 | Incorrect | 26 ms | 564 KB | Output isn't correct |
4 | Incorrect | 437 ms | 9740 KB | Output isn't correct |
5 | Incorrect | 1511 ms | 15720 KB | Output isn't correct |
6 | Incorrect | 2221 ms | 16488 KB | Output isn't correct |
7 | Incorrect | 1016 ms | 16488 KB | Output isn't correct |
8 | Incorrect | 553 ms | 16488 KB | Output isn't correct |
9 | Incorrect | 937 ms | 16488 KB | Output isn't correct |
10 | Incorrect | 3578 ms | 16488 KB | Output isn't correct |