Submission #1673922
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,mod=1e9+7;
int n,m,x[N],a[N],b[N],c[N],w[N],X,Y;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repd(i,a,b) for(int i=(a);i>=(b);i--)
#define re(i,a,b) for(int i=(a);i<(b);i++)
int fa[N];
int getf(int x){return fa[x]==x?x:fa[x]=getf(fa[x]);}
#define w1 first
#define pb push_back
#define w2 second
typedef pair<int,int> pa;
typedef long long ll;
int mnv[N],mni[N];
vector<int>vec[N],son[N];
vector<pa>oo;
ll qpow(ll a,ll b,ll mod){ll res=1;for(;b;b>>=1,a=a*a%mod)if(b&1)res=res*a%mod;return res;}
ll fac[N],ifac[N];
int main(){
scanf("%d%d%d",&n,&X,&Y);
rep(i,1,n)fa[i]=i;
fac[0]=1;
rep(i,1,n)fac[i]=fac[i-1]*i%mod;
ifac[n]=qpow(fac[n],mod-2,mod);
repd(i,n-1,0)ifac[i]=ifac[i+1]*(i+1)%mod;
rep(i,1,n){
scanf("%d%d",&c[i],&w[i]);
if(!mni[c[i]]||mnv[c[i]]>w[i])mni[c[i]]=i,mnv[c[i]]=w[i];
vec[c[i]].push_back(i);
}
rep(i,1,n)if(vec[i].size()){
re(j,0,vec[i].size())if(mnv[i]+w[vec[i][j]]<=X){
fa[getf(vec[i][j])]=getf(mni[i]);
}
}
rep(i,1,n)if(mni[i])oo.pb(pa(mnv[i],mni[i]));
sort(oo.begin(),oo.end());
if(oo.size()>1){
rep(i,1,n){
int id=oo[0].w2;
if(c[id]!=c[i])if(w[i]+w[id]<=Y)
fa[getf(i)]=getf(id);
id=oo[1].w2;
if(c[id]!=c[i])if(w[i]+w[id]<=Y)
fa[getf(i)]=getf(id);
}
}
rep(i,1,n)son[getf(i)].pb(i);
ll ans=1;
rep(i,1,n)if(son[i].size()){
map<int,int>mp;map<int,int>::iterator it;
re(j,0,son[i].size())mp[c[son[i][j]]]++;
ans=ans*fac[son[i].size()]%mod;
for(it=mp.begin();it!=mp.end();it++)
ans=ans*ifac[it->w2]%mod;
}
cout<<ans<<endl;
}
Submission Info
Submission Time
2017-10-10 14:39:50+0900
Task
D - Colorful Balls
User
xjt
Language
C++14 (GCC 5.4.1)
Score
1000
Code Size
1637 Byte
Status
AC
Exec Time
179 ms
Memory
31600 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:21:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&n,&X,&Y);
^
./Main.cpp:28:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&c[i],&w[i]);
^
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
6 ms
14592 KB
00_example_02.txt
AC
6 ms
14592 KB
00_example_03.txt
AC
6 ms
14592 KB
01.txt
AC
7 ms
14592 KB
02.txt
AC
6 ms
14592 KB
03.txt
AC
10 ms
14976 KB
04.txt
AC
7 ms
14592 KB
05.txt
AC
8 ms
14848 KB
06.txt
AC
7 ms
14592 KB
07.txt
AC
61 ms
19704 KB
08.txt
AC
7 ms
14592 KB
09.txt
AC
24 ms
16256 KB
10.txt
AC
21 ms
16000 KB
11.txt
AC
7 ms
14592 KB
12.txt
AC
7 ms
14592 KB
13.txt
AC
10 ms
15104 KB
14.txt
AC
7 ms
14592 KB
15.txt
AC
31 ms
17660 KB
16.txt
AC
55 ms
20472 KB
17.txt
AC
14 ms
15232 KB
18.txt
AC
24 ms
16256 KB
19.txt
AC
43 ms
18172 KB
20.txt
AC
151 ms
30068 KB
21.txt
AC
143 ms
30836 KB
22.txt
AC
128 ms
29684 KB
23.txt
AC
159 ms
30584 KB
24.txt
AC
120 ms
30324 KB
25.txt
AC
149 ms
29560 KB
26.txt
AC
157 ms
30580 KB
27.txt
AC
123 ms
27640 KB
28.txt
AC
166 ms
30584 KB
29.txt
AC
159 ms
30324 KB
30.txt
AC
120 ms
30072 KB
31.txt
AC
179 ms
30584 KB
32.txt
AC
136 ms
29560 KB
33.txt
AC
168 ms
30584 KB
34.txt
AC
135 ms
28788 KB
35.txt
AC
70 ms
21880 KB
36.txt
AC
109 ms
22516 KB
37.txt
AC
77 ms
22012 KB
38.txt
AC
71 ms
21808 KB
39.txt
AC
80 ms
21884 KB
40.txt
AC
139 ms
30568 KB
41.txt
AC
141 ms
30832 KB
42.txt
AC
129 ms
31476 KB
43.txt
AC
118 ms
30320 KB
44.txt
AC
142 ms
31600 KB
45.txt
AC
115 ms
30832 KB
46.txt
AC
136 ms
30452 KB
47.txt
AC
58 ms
22516 KB
48.txt
AC
66 ms
23796 KB
49.txt
AC
62 ms
22644 KB
50.txt
AC
78 ms
27252 KB
51.txt
AC
79 ms
26484 KB
52.txt
AC
59 ms
22656 KB
53.txt
AC
59 ms
22656 KB
54.txt
AC
60 ms
22656 KB