Submission #38038241


Source Code Expand

#include<bits/stdc++.h>
#define mod 1000000007

using namespace std;

long long power(long long a,long long b){
  long long x=1,y=a;
  while(b>0){
    if(b&1ll){
      x=(x*y)%mod;
    }
    y=(y*y)%mod;
    b>>=1;
  }
  return x%mod;
}

long long modular_inverse(long long n){
  return power(n,mod-2);
}

long long factorial[524288];
long long invfact[524288];

void cfact(){
  long long i;
  factorial[0]=1;
  factorial[1]=1;
  for(i=2;i<524288;i++){
    factorial[i]=factorial[i-1]*i;
    factorial[i]%=mod;
  }
  invfact[524287]=modular_inverse(factorial[524287]);
  for(i=524286;i>=0;i--){
    invfact[i]=invfact[i+1]*(i+1);
    invfact[i]%=mod;
  }
}

long long calcnCr(long long n,long long k){
  if(k<0 || n<k){return 0;}
  return (factorial[n]*((invfact[k]*invfact[n-k])%mod))%mod;
}

#define DEG 10005

int main(){
  cfact();
  long long n,k;
  cin >> n >> k;
  vector<long long> e(k);
  for(auto &nx : e){cin >> nx;}

  vector<long long> poly(DEG);
  poly[0]=1;
  for(int tim=0;tim<n;tim++){
    for(int i=1;i<DEG;i++){
      poly[i]+=poly[i-1];
      poly[i]%=mod;
    }
  }
  long long res=0;
  for(long long i=0;i<=n;i++){
    long long del=calcnCr(n,i);
    if(i%2){del=(mod-del)%mod;}
    for(auto &nx : e){
      del*=poly[nx];
      del%=mod;
    }
    res+=del;res%=mod;

    for(int j=DEG-1;j>=1;j--){
      poly[j]+=(mod-poly[j-1]);
      poly[j]%=mod;
    }
    for(int j=2;j<DEG;j++){
      poly[j]+=poly[j-2];
      poly[j]%=mod;
    }
  }
  cout << res << "\n";
  return 0;
}

Submission Info

Submission Time
Task Ex - Avoid Square Number
User physics0523
Language C++ (GCC 9.2.1)
Score 600
Code Size 1584 Byte
Status AC
Exec Time 1092 ms
Memory 11984 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 50
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt
Case Name Status Exec Time Memory
sample_01.txt AC 17 ms 11896 KiB
sample_02.txt AC 34 ms 11804 KiB
test_01.txt AC 13 ms 11900 KiB
test_02.txt AC 17 ms 11688 KiB
test_03.txt AC 16 ms 11836 KiB
test_04.txt AC 16 ms 11832 KiB
test_05.txt AC 702 ms 11896 KiB
test_06.txt AC 702 ms 11800 KiB
test_07.txt AC 1091 ms 11948 KiB
test_08.txt AC 1091 ms 11824 KiB
test_09.txt AC 1091 ms 11904 KiB
test_10.txt AC 1092 ms 11948 KiB
test_11.txt AC 1089 ms 11928 KiB
test_12.txt AC 1092 ms 11908 KiB
test_13.txt AC 20 ms 11764 KiB
test_14.txt AC 170 ms 11748 KiB
test_15.txt AC 984 ms 11960 KiB
test_16.txt AC 26 ms 11852 KiB
test_17.txt AC 639 ms 11696 KiB
test_18.txt AC 1089 ms 11972 KiB
test_19.txt AC 23 ms 11948 KiB
test_20.txt AC 44 ms 11824 KiB
test_21.txt AC 698 ms 11832 KiB
test_22.txt AC 20 ms 11800 KiB
test_23.txt AC 596 ms 11748 KiB
test_24.txt AC 843 ms 11732 KiB
test_25.txt AC 17 ms 11760 KiB
test_26.txt AC 604 ms 11784 KiB
test_27.txt AC 1090 ms 11904 KiB
test_28.txt AC 16 ms 11824 KiB
test_29.txt AC 395 ms 11828 KiB
test_30.txt AC 699 ms 11908 KiB
test_31.txt AC 22 ms 11876 KiB
test_32.txt AC 26 ms 11748 KiB
test_33.txt AC 907 ms 11844 KiB
test_34.txt AC 25 ms 11764 KiB
test_35.txt AC 651 ms 11932 KiB
test_36.txt AC 1089 ms 11880 KiB
test_37.txt AC 21 ms 11824 KiB
test_38.txt AC 191 ms 11948 KiB
test_39.txt AC 700 ms 11760 KiB
test_40.txt AC 17 ms 11760 KiB
test_41.txt AC 530 ms 11692 KiB
test_42.txt AC 719 ms 11880 KiB
test_43.txt AC 29 ms 11936 KiB
test_44.txt AC 1014 ms 11828 KiB
test_45.txt AC 1091 ms 11840 KiB
test_46.txt AC 24 ms 11772 KiB
test_47.txt AC 118 ms 11984 KiB
test_48.txt AC 702 ms 11764 KiB