阿巴阿巴

点击查看代码
#include<bits/stdc++.h>

#define int long long
#define mod 1000000007

using namespace std;

int n,m;
int a[5005]; 
int gs[5005];
vector<int> b;
vector<int> v;
int ans = 1;

void jieshu(){
	cout << 0;
	exit(0);
}

signed main(){
	
	cin >> n >> m;
	for(int i = 1;i <= n;++ i){
		cin >> a[i];
		gs[a[i]]++;
		if(gs[a[i]] == 1) b.push_back(a[i]);
	}
	
	sort(b.begin(),b.end());
	b.push_back(m+2);
	
	v.push_back(b[0]);
	for(int i = 1;i < b.size();++ i){
		if(b[i]-b[i-1] != 1){
			if(v.size() < 3){ 
				for(int i = 0;i < v.size();++ i)
					if(v[i]%3 != 0) jieshu(); 
			}
			else{
				for(int i = 0;i+2 < v.size();++ i){
					int mo = gs[v[i]]%3;
					gs[v[i]] -= mo;
					gs[v[i+1]] -= mo;
					gs[v[i+2]] -= mo;
					if(gs[v[i+1]] < 0||gs[v[i+2]] < 0) jieshu();
				}
				int ww = v.size();
				if(gs[v[ww-2]]%3 != 0||gs[v[ww-1]]%3 != 0) jieshu();
				int da = gs[v[0]];
				for(int i = 0;i < v.size();++ i)
					da = min(da,gs[v[i]]);
				da /= 3;da++;
				ans *= da;
				ans %= mod;
			}
			v.clear();
			v.push_back(b[i]);
		}
		else v.push_back(b[i]);
	}
	
	cout << ans;
	
	return 0;
	
}
posted @   不认命,就是哪吒的命!  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示