(水题)洛谷 - P1618 - 三连击(升级版)

时间:2023-03-09 08:26:00
(水题)洛谷 - P1618 - 三连击(升级版)

https://www.luogu.org/problemnew/show/P1618

枚举所有的A,最多 $A_9^3$ ,然后生成B和C(先判断是不是能够生成),判断有没有重复数字(比之前那个优雅多了)。

$10^3$ 的水题,但是我忘记输出No的情况,玄学。

#include<bits/stdc++.h>
using namespace std;
#define ll long long int A,B,C; set<int>ans; void solve(int a1,int a2,int a3){
int cA=*a1+*a2+a3;
int cB,cC;
if(cA%A!=)
return;
cB=cA/A*B;
cC=cA/A*C; if(cB>=||cC>=)
return; int used[];
for(int i=;i<=;i++)
used[i]=;
used[a1]++;
used[a2]++;
used[a3]++; while(cB){
used[cB%]++;
cB/=;
} while(cC){
used[cC%]++;
cC/=;
} for(int i=;i<=;i++){
if(used[i]!=)
return;
}
ans.insert(cA);
} int main(){
scanf("%d%d%d",&A,&B,&C);
if(A==){
puts("No!!!");
return ;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
if(j==i)
continue;
for(int k=;k<=;k++){
if(k==j||k==i)
continue;
else{
solve(i,j,k);
}
}
}
} if(ans.size())
for(auto i:ans){
printf("%d %d %d\n",i,i/A*B,i/A*C);
}
else{
printf("No!!!\n");
}
}