Submission #164323

# Submission time Handle Problem Language Result Execution time Memory
164323 2019-11-19T11:50:31 Z beso123 Relativnost (COCI15_relativnost) C++14
70 / 140
1447 ms 27976 KB
#include <bits/stdc++.h>
#define mod 10007
using namespace std;
int n,m,Q,a[100010],b[100010],t[200100][22],sum;
void update(int v){
for(int k=0;k<=m;k++)
        t[v][k]=0;
  for(int i=0;i<=m;++i)
    for(int j=0;j<=m;++j){
      t[v][min(i+j,m)]+=((t[v*2][i]%mod)*(t[v*2+1][j])%mod);
      t[v][min(i+j,m)]%=mod;
  }
  for(int k=0;k<=m;k++)
    t[v][k]%=mod;
}
void Build(int v,int i,int j){
    if(i==j){
        t[v][0]=b[i]%mod;
        t[v][1]=a[i]%mod;
        return;
    }
    int mid=(i+j)/2;
    Build(v*2,i,mid);
    Build(v*2+1,mid+1,j);
   update(v);
}
void UPD(int v,int i,int j,int pos){
    if(i==j){
        t[v][0]=b[i]%mod;
        t[v][1]=a[i]%mod;
        return;
    }
    int mid=(i+j)/2;
    if(pos<=mid)
        UPD(v*2,i,mid,pos);
    else
        UPD(v*2+1,mid+1,j,pos);
    update(v);
}
int main(){
scanf("%d%d",&n,&m);
for(int k=1;k<=n;k++){
 scanf("%d",&a[k]);
    a[k]%=mod;
}
for(int k=1;k<=n;k++){
 scanf("%d",&b[k]);
    b[k]%=mod;
}
Build(1,1,n);
cin>>Q;
while(Q--){
   int x,na,nb;
   scanf("%d%d%d",&x,&na,&nb);
   a[x]=na%mod;
   b[x]=nb%mod;
    UPD(1,1,n,x);
    int ans=t[1][m]%mod;
    printf("%d\n",ans);
}
return 0;
}

Compilation message

relativnost.cpp: In function 'int main()':
relativnost.cpp:41:6: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
 scanf("%d%d",&n,&m);
 ~~~~~^~~~~~~~~~~~~~
relativnost.cpp:43:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&a[k]);
  ~~~~~^~~~~~~~~~~~
relativnost.cpp:47:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&b[k]);
  ~~~~~^~~~~~~~~~~~
relativnost.cpp:54:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d%d%d",&x,&na,&nb);
    ~~~~~^~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 12 ms 504 KB Output is correct
2 Correct 20 ms 504 KB Output is correct
3 Correct 39 ms 504 KB Output is correct
4 Correct 638 ms 12364 KB Output is correct
5 Runtime error 138 ms 27768 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 208 ms 27896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Correct 1447 ms 12512 KB Output is correct
8 Runtime error 99 ms 27896 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 93 ms 27976 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 229 ms 27916 KB Execution killed with signal 11 (could be triggered by violating memory limits)