当前位置:网站首页>Codeforces Round #624 (Div. 3)
Codeforces Round #624 (Div. 3)
2022-08-02 14:10:00 【老顽固也可爱】
Codeforces Round #624 (Div. 3)
D. Three Integers
You are given three integers a≤b≤c.
In one move, you can add +1 or −1
to any of these integers (i.e. increase or decrease any number by one). You can perform such operation any (possibly, zero) number of times, you can even perform this operation several times with one number. Note that you cannot make non-positive numbers using such operations.
You have to perform the minimum number of such operations in order to obtain three integers A≤B≤C such that B is divisible by A and C is divisible by B.
You have to answer t independent test cases.
Input
The first line of the input contains one integer t(1≤t≤100) — the number of test cases.
The next t lines describe test cases. Each test case is given on a separate line as three space-separated integers a,b and c (1≤a≤b≤c≤104).
Output
For each test case, print the answer. In the first line print res— the minimum number of operations you have to perform to obtain three integers A≤B≤C such that B is divisible by A and C is divisible by B. On the second line print any suitable triple A,B and C.
Example
Input
8
1 2 3
123 321 456
5 10 15
15 18 21
100 100 101
1 22 29
3 19 38
6 30 46
Output
1
1 1 3
102
114 228 456
4
4 8 16
6
18 18 18
1
100 100 100
7
1 22 22
2
1 19 38
8
6 24 48
解析
题目大意就是,给你三个数a,b,c,进行+1或-1操作,使得 b%a== 0&&c%b == 0 ,找出操作次数最少的。
这个题目用普通的正面思考会很复杂,第一个想到的就是bfs,但是用bfs很容易爆内存。
简单的方法是换一种思路:从满足b%a== 0&&c%b == 0条件开始找最小的值。
ac代码
#include<bits/stdc++.h>
using namespace std;
int t,a,b,c;
int main()
{
scanf("%d",&t);
while(t--)
{
cin>>a>>b>>c;
int v1=0,v2=0,v3=0,ans=2147483647;
for(int i=1;i<=11000;i++)
for(int j=i;j<=11000;j+=i)
for(int k=j;k<=11000;k+=j)
if(abs(a-i)+abs(b-j)+abs(c-k)<ans)
ans=abs(a-i)+abs(b-j)+abs(c-k),v1=i,v2=j,v3=k;
printf("%d\n",ans);
printf("%d %d %d\n",v1,v2,v3);
}
return 0;
}
边栏推荐
猜你喜欢

How to add a one-key shutdown option to the right-click menu in Windows 11

FP6293电池升压5V-12V大电流2APWM模式升压方案

二叉树创建之层次法入门详解

CI24R1小模块2.4G收发模块无线通信低成本兼容si24r1/XN297超低功耗

Open the door of power and electricity "Circuit" (2): Power Calculation and Judgment

Redis的线程模型

Win11怎么在右键菜单添加一键关机选项

MATLAB绘图函数fplot详解

PHY6222蓝牙5.2支持MESH组网M0内核超低功耗

FP7195转模拟调光技术解决智能家居调光频闪和电感噪音的原理
随机推荐
Win7遇到错误无法正常开机进桌面怎么解决?
TypeScript 快速进阶
5. Use RecyclerView to elegantly achieve waterfall effect
Win10 cannot directly use photo viewer to open the picture
How to solve Win11 without local users and groups
MATLAB制作简易小动画入门详解
Win7怎么干净启动?如何只加载基本服务启动Win7系统
LORA芯片ASR6601支持M4内核的远距离传输芯片
镜像法求解接地导体空腔电势分布问题
Configure clangd for vscode
开心一下,9/28名场面合集
What should I do if Windows 10 cannot connect to the printer?Solutions for not using the printer
Win10电脑需要安装杀毒软件吗?
刷卡芯片CI520可直接PIN对PIN替换CV520支持SPI通讯接口
Win11 computer off for a period of time without operating network how to solve
KiCad常用快捷键
cmake configure libtorch error Failed to compute shorthash for libnvrtc.so
Mysql lock
Bash shell位置参数
Open the door of power and electricity "Circuit" (2): Power Calculation and Judgment