Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
227816023 Дорешивание:
FreshOrange
1838E - 9 C++14 (GCC 6-32) Полное решение 311 мс 3144 КБ 2023-10-12 16:10:18 2023-10-12 16:10:18
→ Исходный код
#include<bits/stdc++.h>

using namespace std;

typedef long long E;

const E mod=1e9+7;

E ksm(E a,E b){
  E ret=1;
  while(b){
    if(b&1) ret=ret*a%mod;
    a=a*a%mod;
    b>>=1;
  }
  return ret;
}

const int N=200010;

E jc[N],inv[N];

inline E C(E n,E m){
  return n<m?0:jc[n]*inv[m]%mod*inv[n-m]%mod;
}

void solve(){
  E n,m,k;
  cin>>n>>m>>k;
  E ans=0;
  for(int i=0; i<n; i++) scanf("%lld",&ans);
  ans=ksm(k,m);
  E t=1;
  for(int p=m; p!=m-n; p--){
    ans=(ans-ksm(k-1,p)*t%mod)%mod;
    t=t*p%mod*ksm(m-p+1,mod-2)%mod;
  }
  cout<<(ans%mod+mod)%mod<<endl;
}

int main(){

  int t=200000;
  jc[0]=inv[0]=1;
  for(int i=1; i<=t; i++) jc[i]=jc[i-1]*i%mod;
  inv[t]=ksm(jc[t],mod-2);
  for(int i=t-1; i; i--) inv[i]=inv[i+1]*(i+1)%mod;

  int T;
  cin>>T;
  while(T--) solve();

  return 0;
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования