Submission #783129

#TimeUsernameProblemLanguageResultExecution timeMemory
783129kebineThe Xana coup (BOI21_xanadu)C++17
0 / 100
1 ms596 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll n,m; ll a[2005],b[2005]; ll pref[2005],suff[2005]; ll mod=1e9+7; ll jawab; vector <ll> ans; ll fact (ll nn){ if (nn==0) return 1; return nn%mod*fact(nn-1)%mod; } ll kali (ll x, ll y){ return (x*y)%mod; } ll simpan=1; void fexpo(ll x, ll y){ if(y == 0) return; if (y==1) { simpan=kali(simpan,x); return; } if (y%2==0){ fexpo(kali(x,x),y/2); } else{ simpan=kali(simpan,x); fexpo(kali(x,x),(y-1)/2); } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //fexpo(fact(1950), mod - 2); //fexpo(fact(2000), mod - 2); cin>>n>>m; for (int i=1;i<=n;i++){ cin>>a[i]; pref[i]=max(pref[i-1],a[i]); // cout<<pref[i]<<endl; } for (int i=1;i<=n;i++){ suff[i]=max(suff[i-1],a[n-i+1]); } // for (int i=1;i<=n;i++) cout<<pref[i]<<" "<<suff[i]<<":::"<<i<<endl; for (int i=1;i<=m;i++){ cin>>b[i]; } if (n<m) { cout<<0; return 0; } ll tes=1; ll u=m-1; fexpo(fact(u)%mod,mod-2); tes*=simpan%mod; simpan=1; fexpo(fact(n-m)%mod,mod-2); tes*=simpan%mod*fact(n-1)%mod; tes%=mod; cout<<tes; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...