Submission #2207651
Source Code Expand
#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define MN 200005 #define mod 1000000007 #define inf 0x7fffffff using namespace std; inline int in(){ int x=0;bool f=0; char c; for (;(c=getchar())<'0'||c>'9';f=c=='-'); for (x=c-'0';(c=getchar())>='0'&&c<='9';x=(x<<3)+(x<<1)+c-'0'); return f?-x:x; } vector<int> b[MN],d[MN]; int fct[MN+5],ivf[MN+5],c[MN],w[MN],mc[MN],num[MN],col[MN]; bool vis[MN]; int n,x,y,cnt,tot,sz,res=1,mn; inline void dfs(int u){ vis[u]=1;if (!num[c[u]]) col[++cnt]=c[u]; ++num[c[u]];++tot;int ds=d[u].size(); for (int i=0;i<ds;++i) if (!vis[d[u][i]]) dfs(d[u][i]); } int main() { n=in();x=in();y=in();fct[0]=fct[1]=1; ivf[0]=0;ivf[1]=1;w[0]=inf; for (int i=1;i<=n;++i){ c[i]=in(),w[i]=in(); b[c[i]].push_back(i); } for (int i=2;i<=MN;++i){ fct[i]=(1ll*fct[i-1]*i)%mod; ivf[i]=(1ll*(mod-mod/i)*ivf[mod%i])%mod; } for (int i=2;i<=MN;++i) ivf[i]=(1ll*ivf[i-1]*ivf[i])%mod; for (int i=1;i<=n;++i){ mn=0;sz=b[i].size(); for (int j=0;j<sz;++j) if (w[b[i][j]]<w[mn]) mn=b[i][j]; if (!mn) continue;mc[i]=mn; for (int j=0;j<sz;++j) if (mn!=b[i][j]&&w[b[i][j]]+w[mn]<=x) d[mn].push_back(b[i][j]),d[b[i][j]].push_back(mn); } for (int i=n;i>=2;--i) if (w[mc[i]]<w[mc[i-1]]) swap(mc[i],mc[i-1]); for (int i=n;i>=3;--i) if (w[mc[i]]<w[mc[i-1]]) swap(mc[i],mc[i-1]); for (int j=1;j<=2;++j){ if (!mc[j]) break; for (int i=1;i<=n;++i){ if (c[i]!=c[mc[j]]&&w[i]+w[mc[j]]<=y) d[mc[j]].push_back(i),d[i].push_back(mc[j]); } } for (int i=1;i<=n;++i){ if (!vis[i]){ tot=cnt=0;dfs(i); res=(1ll*res*fct[tot])%mod; for (int j=1;j<=cnt;++j) res=(1ll*res*ivf[num[col[j]]])%mod,num[col[j]]=0; } }printf("%d",res);return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Colorful Balls |
User | vjudge1 |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1723 Byte |
Status | AC |
Exec Time | 90 ms |
Memory | 26032 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_example_01.txt | AC | 8 ms | 13184 KB |
00_example_02.txt | AC | 8 ms | 13312 KB |
00_example_03.txt | AC | 8 ms | 13312 KB |
01.txt | AC | 8 ms | 13312 KB |
02.txt | AC | 8 ms | 13312 KB |
03.txt | AC | 10 ms | 13696 KB |
04.txt | AC | 8 ms | 13312 KB |
05.txt | AC | 9 ms | 13440 KB |
06.txt | AC | 8 ms | 13312 KB |
07.txt | AC | 42 ms | 17856 KB |
08.txt | AC | 8 ms | 13312 KB |
09.txt | AC | 25 ms | 16264 KB |
10.txt | AC | 20 ms | 14976 KB |
11.txt | AC | 8 ms | 13312 KB |
12.txt | AC | 8 ms | 13312 KB |
13.txt | AC | 10 ms | 13824 KB |
14.txt | AC | 8 ms | 13312 KB |
15.txt | AC | 23 ms | 16136 KB |
16.txt | AC | 32 ms | 16128 KB |
17.txt | AC | 14 ms | 14080 KB |
18.txt | AC | 21 ms | 14976 KB |
19.txt | AC | 32 ms | 16284 KB |
20.txt | AC | 75 ms | 23204 KB |
21.txt | AC | 67 ms | 22392 KB |
22.txt | AC | 64 ms | 20736 KB |
23.txt | AC | 76 ms | 25460 KB |
24.txt | AC | 59 ms | 19968 KB |
25.txt | AC | 78 ms | 23608 KB |
26.txt | AC | 82 ms | 25844 KB |
27.txt | AC | 68 ms | 22144 KB |
28.txt | AC | 90 ms | 26032 KB |
29.txt | AC | 83 ms | 24476 KB |
30.txt | AC | 57 ms | 19200 KB |
31.txt | AC | 84 ms | 25988 KB |
32.txt | AC | 73 ms | 21524 KB |
33.txt | AC | 89 ms | 25768 KB |
34.txt | AC | 79 ms | 24932 KB |
35.txt | AC | 63 ms | 21752 KB |
36.txt | AC | 81 ms | 22780 KB |
37.txt | AC | 65 ms | 22264 KB |
38.txt | AC | 64 ms | 21492 KB |
39.txt | AC | 65 ms | 22012 KB |
40.txt | AC | 78 ms | 25908 KB |
41.txt | AC | 70 ms | 23432 KB |
42.txt | AC | 62 ms | 22776 KB |
43.txt | AC | 58 ms | 20864 KB |
44.txt | AC | 71 ms | 25844 KB |
45.txt | AC | 54 ms | 20352 KB |
46.txt | AC | 70 ms | 23696 KB |
47.txt | AC | 42 ms | 19444 KB |
48.txt | AC | 40 ms | 17140 KB |
49.txt | AC | 46 ms | 18420 KB |
50.txt | AC | 48 ms | 22900 KB |
51.txt | AC | 43 ms | 21112 KB |
52.txt | AC | 41 ms | 19064 KB |
53.txt | AC | 41 ms | 19064 KB |
54.txt | AC | 42 ms | 19064 KB |