点击查看代码
#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;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析