当前位置:网站首页>Codeforces Round #624 (Div. 3)
Codeforces Round #624 (Div. 3)
2022-08-02 15:32:00 【A bigot is lovely】
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 ,Find the minimum number of operation.
This topic by ordinary positive thinking will be very complicated,第一个想到的就是bfs,但是用bfs很容易爆内存.
Simple method is to change an idea:从满足b%a== 0&&c%b == 0Conditions began to find the minimum value.
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;
}
边栏推荐
- pygame绘制弧线
- 利用plot_surface命令绘制复杂曲面入门详解
- Lightweight AlphaPose
- How to update Win11 sound card driver?Win11 sound card driver update method
- Win10安装了固态硬盘还是有明显卡顿怎么办?
- MATLAB绘图函数ezplot入门详解
- 二叉树创建之层次法入门详解
- Spark及相关生态组件安装配置——快速回忆
- Win10 Settings screen out from lack of sleep?Win10 set the method that never sleep
- 如何用硬币模拟1/3的概率,以及任意概率?
猜你喜欢

Win10 Settings screen out from lack of sleep?Win10 set the method that never sleep

golang之GMP调度模型

Mysql之MVCC

网络安全抓包

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

【STM32学习1】基础知识与概念明晰

mysql的索引结构为什么选用B+树?

使用 腾讯云搭建一个个人博客

Codeforces Round #605 (Div. 3)

What should I do if I install a solid-state drive in Win10 and still have obvious lags?
随机推荐
Win7 encounters an error and cannot boot into the desktop normally, how to solve it?
二叉树的遍历:递归法/ 迭代法/ 统一迭代法(强QAQ)
Actual combat Meituan Nuxt +Vue family bucket, server-side rendering, mailbox verification, passport authentication service, map API reference, mongodb, redis and other technical points
关于c语言的调试技巧
Win11没有本地用户和组怎么解决
Mysql之MVCC
3. User upload avatar
yolov5官方代码解读——前向传播
模板系列-并查集
网络安全抓包
利用plot_surface命令绘制复杂曲面入门详解
Mysql connection error solution
How to solve Win11 without local users and groups
STM32LL library use - SPI communication
What should I do if Windows 10 cannot connect to the printer?Solutions for not using the printer
推开机电的大门《电路》(三):说说不一样的电阻与电导
Please make sure you have the correct access rights and the repository exists.问题解决
奇技淫巧-位运算
MATLAB绘图命令fimplicit绘制隐函数图形入门详解
Win11系统找不到dll文件怎么修复