比赛 |
20251001国庆欢乐赛1 |
评测结果 |
WTEEEEEEEE |
题目名称 |
国旗计划 |
最终得分 |
0 |
用户昵称 |
ChenBp |
运行时间 |
3.214 s |
代码语言 |
C++ |
内存使用 |
3.45 MiB |
提交时间 |
2025-10-01 11:44:14 |
显示代码纯文本
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
int n,m,c[1003],d[1003];
int now=0;
int te[1003];
int ans=0;
bool ok=0;
void dfs(int t,int cnt){
// cout<<t;
if(t==n+1){
ok=1;
int sum=0;
// for(int i=1;i<=m;i++){
// cout<<te[i];
// }
// cout<<endl;
for(int i=1;i<=m;i++){
sum+=te[i];
if(!sum){
ok=0;
return;
}
}
ans=cnt;
return;
}
if(ok) return;
if(t!=now){
dfs(t+1,cnt);
}
if(ok) return;
if(c[t]<d[t]){
te[c[t]]+=1;
te[d[t]+1]-=1;
}else{
te[c[t]]+=1;
te[m+1]-=1;
te[1]+=1;
te[d[t]+1]-=1;
}
dfs(t+1,cnt+1);
if(c[t]<d[t]){
te[c[t]]-=1;
te[d[t]+1]+=1;
}else{
te[c[t]]-=1;
te[m+1]+=1;
te[1]-=1;
te[d[t]+1]+=1;
}
}
int main(){
freopen("flagplan.in","r",stdin);
freopen("flagplan.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>c[i]>>d[i];
}
for(int i=1;i<=n;i++){
memset(te,0,sizeof(te));
ok=0;
now=i;
dfs(1,0);
cout<<ans+1<<" ";
}
}