AC日记——三连击 洛谷 P1008

时间:2023-03-09 08:26:00
AC日记——三连击 洛谷 P1008

题目背景

本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。

输入输出格式

输入格式:

木有输入

输出格式:

若干行,每行3个数字。按照每行第一个数字升序排列。

输入输出样例

输入样例#1:

输出样例#1:
192 384 576
* * *
...
* * *
(输出被和谐了)

思路:

  搜索;

  水到炸。

来,上代码:

#include <cstdio>
#include <cstring>
#include <iostream> using namespace std; int ans[]; bool if_[]; void dfs(int now)
{
if(now==)
{
int pos=ans[]*+ans[]*+ans[];
int pos_=ans[]*+ans[]*+ans[];
if(pos*!=pos_) return ;
}
if(now==)
{
int pos=ans[]*+ans[]*+ans[];
int pos_=ans[]*+ans[]*+ans[];
if(pos*!=pos_) return ;
cout<<ans[]<<ans[]<<ans[]<<' ';
cout<<ans[]<<ans[]<<ans[]<<' ';
cout<<ans[]<<ans[]<<ans[]<<endl;
return ;
}
for(int i=;i<=;i++)
{
if(!if_[i])
{
if_[i]=true;
ans[now]=i;
dfs(now+);
if_[i]=false;
}
}
} int main()
{
dfs();
return ;
}