Submission #6508583


Source Code Expand

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <map>
#include <queue>
#include <iomanip>
#include <set>
#define MOD 1000000007
#define mkp make_pair
typedef long long ll;
using namespace std;

#define MAX_N 200020
ll inv[MAX_N+10],fac[MAX_N+10],ifac[MAX_N+10];

void setComb(){
  inv[0]=1;inv[1]=1;fac[1]=1;ifac[1]=1;fac[0]=1;ifac[0]=1;
  for(int i=2;i<MAX_N;i++){
    inv[i]=(-MOD/i)*inv[MOD%i]%MOD;
    fac[i]=fac[i-1]*i%MOD;
    ifac[i]=ifac[i-1]*inv[i]%MOD;
  }
  return;
}

ll comb(ll n,ll k){
  if(n<k||n<0||k<0) return 0;
  else return ((fac[n]*ifac[k]%MOD*ifac[n-k]%MOD+MOD)%MOD);
}

ll hcomb(ll n,ll r){
  if(n==0&&r==0) return 1;
  else if(n<0||r<0) return 0;
  else return comb(n+r-1,r-1);
}

int main(){
  int N;
  cin>>N;
  vector<ll> A(N);
  for(int i=0;i<N;i++) cin>>A[i];

  vector<pair<int,ll>> v;
  int len=0,val=0;
  for(int i=0;i<N;i++){
      if(A[i]!=-1){
          if(len==0) continue;
          v.push_back(mkp(len+1,A[i]-val));
          len=0;
          val=0;
      }else{
          if(len==0) val=A[i-1];
          len++;
      }
  }
  setComb();

  ll ans=1;
  for(int i=0;i<v.size();i++){
      ll a,b;
      tie(a,b)=v[i];

      ll n=a+b-1;
      b=min(b,n-b);

      ll res=1;
      for(ll j=0;j<b;j++){
          ll z=(n-j)%MOD;
          res=res*z%MOD;
      }
      for(int j=1;j<=b;j++){
          ll z=inv[j]%MOD;
          res=res*z%MOD;
      }
      ans=ans*res%MOD;
  }

  cout<<(ans+MOD)%MOD<<endl;

  return 0;
}

Submission Info

Submission Time
Task C - タコヤ木
User snow39
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1596 Byte
Status AC
Exec Time 6 ms
Memory 4992 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 50 / 50 30 / 30 20 / 20
Status
AC × 3
AC × 14
AC × 26
AC × 39
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt
Subtask3 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt
Case Name Status Exec Time Memory
sample_01.txt AC 5 ms 4992 KB
sample_02.txt AC 5 ms 4992 KB
sample_03.txt AC 5 ms 4992 KB
subtask1_01.txt AC 5 ms 4992 KB
subtask1_02.txt AC 5 ms 4992 KB
subtask1_03.txt AC 5 ms 4992 KB
subtask1_04.txt AC 5 ms 4992 KB
subtask1_05.txt AC 5 ms 4992 KB
subtask1_06.txt AC 5 ms 4992 KB
subtask1_07.txt AC 5 ms 4992 KB
subtask1_08.txt AC 5 ms 4992 KB
subtask1_09.txt AC 5 ms 4992 KB
subtask1_10.txt AC 5 ms 4992 KB
subtask1_11.txt AC 5 ms 4992 KB
subtask1_12.txt AC 5 ms 4992 KB
subtask2_01.txt AC 5 ms 4992 KB
subtask2_02.txt AC 5 ms 4992 KB
subtask2_03.txt AC 5 ms 4992 KB
subtask2_04.txt AC 5 ms 4992 KB
subtask2_05.txt AC 5 ms 4992 KB
subtask2_06.txt AC 5 ms 4992 KB
subtask2_07.txt AC 5 ms 4992 KB
subtask2_08.txt AC 5 ms 4992 KB
subtask2_09.txt AC 5 ms 4992 KB
subtask2_10.txt AC 5 ms 4992 KB
subtask2_11.txt AC 5 ms 4992 KB
subtask2_12.txt AC 5 ms 4992 KB
subtask3_01.txt AC 5 ms 4992 KB
subtask3_02.txt AC 5 ms 4992 KB
subtask3_03.txt AC 5 ms 4992 KB
subtask3_04.txt AC 6 ms 4992 KB
subtask3_05.txt AC 5 ms 4992 KB
subtask3_06.txt AC 5 ms 4992 KB
subtask3_07.txt AC 5 ms 4992 KB
subtask3_08.txt AC 6 ms 4992 KB
subtask3_09.txt AC 5 ms 4992 KB
subtask3_10.txt AC 6 ms 4992 KB
subtask3_11.txt AC 5 ms 4992 KB
subtask3_12.txt AC 6 ms 4992 KB