Submission #3305260
Source Code Expand
#include <iostream> #include <stdio.h> #include <fstream> #include <algorithm> #include <string> #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <limits.h> #include <math.h> #include <functional> #include <bitset> #define repeat(i,n) for (long long i = 0; (i) < (n); ++ (i)) #define debug(x) cerr << #x << ": " << x << '\n' #define debugArray(x,n) for(long long i = 0; (i) < (n); ++ (i)) cerr << #x << "[" << i << "]: " << x[i] << '\n' #define debugArrayP(x,n) for(long long i = 0; (i) < (n); ++ (i)) cerr << #x << "[" << i << "]: " << x[i].first<< " " << x[i].second << '\n' using namespace std; typedef long long ll; typedef pair<int,int> Pii; typedef vector<int> vint; typedef vector<ll> vll; const ll INF = LLONG_MAX/10; const ll MOD = 1e9+7; template <ll mod> struct ModCombination{ ll N; vector<ll> fact,inv,finv; ModCombination(ll n):N(n){ fact.assign(n+1, 1); inv.assign(n+1, 1); finv.assign(n+1,1); for(int i=1;i<n;i++){ fact[i+1] = fact[i]*(i+1)%mod; inv[i+1] = inv[mod%(i+1)]*(mod-mod/(i+1))%mod; finv[i+1] = finv[i]*inv[i+1]%mod; } } ll P(ll n,ll k){ if(n==0)return 0; return (fact[n]*finv[n-k]%mod); } }; int main(){ int N;cin>>N; ModCombination<MOD> c(N+1); vector<pair<int,bool>> x(2*N); repeat(b,2){ repeat(i,N){ cin >> x[b*N+i].first; x[b*N+i].second = b; } } sort(x.begin(),x.end()); ll ans=1; int cnt[2]={0,0}; repeat(i,2*N){ cnt[x[i].second]++; if(i==2*N-1||x[i].second!=x[i+1].second){ int mi = min(cnt[0],cnt[1]); ans = (ans*c.P(cnt[!x[i].second],mi))%MOD; cnt[0] -= mi; cnt[1] -= mi; } } cout << ans <<endl; }
Submission Info
Submission Time | |
---|---|
Task | A - 1D Matching |
User | hashiryo |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1852 Byte |
Status | WA |
Exec Time | 101 ms |
Memory | 4224 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0.txt, example1.txt |
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, example0.txt, example1.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | WA | 60 ms | 2560 KB |
001.txt | WA | 22 ms | 1152 KB |
002.txt | WA | 31 ms | 1408 KB |
003.txt | WA | 34 ms | 1536 KB |
004.txt | WA | 89 ms | 3712 KB |
005.txt | WA | 99 ms | 4224 KB |
006.txt | WA | 99 ms | 4096 KB |
007.txt | WA | 99 ms | 4096 KB |
008.txt | WA | 99 ms | 4224 KB |
009.txt | WA | 101 ms | 4224 KB |
010.txt | WA | 99 ms | 4096 KB |
011.txt | WA | 99 ms | 4096 KB |
example0.txt | WA | 1 ms | 256 KB |
example1.txt | WA | 1 ms | 256 KB |