当前位置:网站首页>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;
}
边栏推荐
- vscode镜像
- pygame图像连续旋转
- Win11系统找不到dll文件怎么修复
- 推开机电的大门《电路》(二):功率计算与判断
- Win11声卡驱动如何更新?Win11声卡驱动更新方法
- In-depth understanding of Golang's Map
- How to solve Win11 without local users and groups
- 使用npx -p @storybook/cli sb init安装失败,手把手搭建专属的storybook
- Fast advanced TypeScript
- Compilation error D8021: Invalid numeric argument '/Wextra' cl command line error d8021 invalid numeric argument '/Wextra'
猜你喜欢
随机推荐
DP1332E刷卡芯片支持NFC内置mcu智能楼宇/终端poss机/智能门锁
Makefile容易犯错的语法
用U盘怎么重装Win7系统?如何使用u盘重装系统win7?
刷卡芯片CI520可直接PIN对PIN替换CV520支持SPI通讯接口
win11一直弹出用户账户控制怎么解决
[STM32 Learning 1] Basic knowledge and concepts are clear
Win10系统设置application identity自动提示拒绝访问怎么办
FP7195转模拟调光技术解决智能家居调光频闪和电感噪音的原理
Win10 cannot directly use photo viewer to open the picture
背包问题-动态规划-理论篇
ECP2459耐压60V降压BUCK电路用于WIFI模块供电方案原理图
Binder机制(下篇)
HAL框架
2022TI杯D题混沌信号产生实验装置
Configure clangd for vscode
What should I do if I install a solid-state drive in Win10 and still have obvious lags?
2021-10-14
设备驱动框架简介
win10怎么设置不睡眠熄屏?win10设置永不睡眠的方法
Win11 computer off for a period of time without operating network how to solve