https://i0.wp.com/eblogarithm.com/wp-content/uploads/2017/01/Codecraft17-and-Codeforces-Round-391-Div-1--Div-2-combined-problem-C-Felicity-is-Coming-Solution-in-CC1.png?fit=640%2C360

Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined), problem: (C) Felicity is Coming! Solution in C/C++

#include<stdio.h>
#include<stdlib.h>
#define m 1000000007u
typedef long long unsigned llu;
typedef unsigned u;
int C(const void*x,const void*y){return*(u*)x-*(u*)y;}
int D(const void*x,const void*y)
{
	if(*(llu*)x>*(llu*)y)return 1;
	if(*(llu*)x<*(llu*)y)return-1;
	return 0;
}
llu H[1111111],P[1111111];
u F[1111111],Q[1111111];
int main()
{
	u t,q,n,i,j,r=1;
	for(F[i=0]=1;++i<1111111😉F[i]=i*(llu)F[i-1]%m;
	for(P[i=0]=1;++i<1111111😉P[i]=m*P[i-1]+1;
	for(scanf("%u%u",&t,&n);t--;)
	{
		scanf("%u",&q);
		for(i=-1;++i<q😉scanf("%u",Q+i);
		qsort(Q,q,sizeof(u),C);Q[q]=-1u;
		for(j=i=0;++i<=q😉if(Q[i]!=Q[j])
		{
			H[Q[j]-1]+=(i-j)*P[t];
			j=i;
		}
	}
	qsort(H,n,sizeof(llu),D);H[n]=-1llu;
	for(j=i=0;++i<=n😉if(H[i]!=H[j])
	{
		
		r=r*(llu)F[i-j]%m;
		j=i;
	}
	printf("%u\n",r);
	return 0;
}
(Visited 31 times, 1 visits today)



There are no comments

Add yours

Leave a Reply

%d bloggers like this: