/ Randle /

记录详情

Runtime Error

/in/foo.cc:40:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
# 状态 耗时 内存占用
#1 Accepted 3ms 256.0 KiB
#2 Accepted 3ms 256.0 KiB
#3 Accepted 3ms 348.0 KiB
#4 Accepted 2ms 256.0 KiB
#5 Accepted 3ms 256.0 KiB
#6 Time Exceeded ≥1002ms ≥384.0 KiB
#7 Time Exceeded ≥1003ms ≥504.0 KiB
#8 Runtime Error 15ms 972.0 KiB
#9 Runtime Error 57ms 960.0 KiB
#10 Runtime Error 71ms 988.0 KiB

代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const ll base=1000000007;
ll n,k,a,v[300],num[300],other,ans=0ll;
ll f[300][300];
bool judge(ll b)
{
	ll a=b;
	int p;
	while(a>0)
	{
		p=a%10;
		if(p!=4&&p!=7)
			return false;
		a/=10;
	}
	for(p=1;p<=v[0];p++)
		if(num[p]==b)
		{
			v[p]++;
			return true;
		}
	num[++num[0]]=b;
	v[++v[0]]=1;
	return true;	
}
ll c(ll a,ll b)
{
	if(a<b)
		return 0;
	if(b==1)
		return a;
	if(a==b||b==0)
		return 1;
	return c(a-1,b)+c(a-1,b-1);
}
main()
{
	int i,j;
	cin>>n>>k;
	for(i=1;i<=n;i++)
	{
		cin>>a;
		if(!judge(a))
			other++;
	}
	f[0][0]=1;
	for(i=1;i<=v[0];i++)
	{
		f[i][0]=1;
		for(j=1;j<=v[0];j++)
			f[i][j]=f[i-1][j]+f[i-1][j-1]*v[i];
	}
	for(i=0;i<=min(k,v[0]);i++)
		ans=(ans+f[v[0]][i]*c(other,k-i))%base;
	cout<<ans;
}

信息

递交者
类型
递交
题目
幸运数 T3
题目数据
下载
语言
C++
递交时间
2017-09-09 17:06:56
评测时间
2017-09-09 17:06:56
评测机
分数
50
总耗时
2165ms
峰值内存
988.0 KiB