列表

详情


NC230094. D%C%B%A=0

描述

给定四个整数

每次操作可以在A,B,C,D中选择一个数,将其加一或者减一

要求最小的操作,满足BA的倍数,CB的倍数,DC的倍数

输入描述

第一行输入四个正整数A,B,C,D

输出描述

将答案单独一行输出到屏幕

示例1

输入:

1 2 3 4

输出:

1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 10ms, 内存消耗: 404K, 提交时间: 2022-02-21 13:29:20

#include<bits/stdc++.h>
using namespace std;
const int n=10000;
int main()
{
    int ans=n,a,b,c,d;
    cin>>a>>b>>c>>d;
    for(int i=1;i<=n;i++)
    for(int j=i;j<=n;j+=i)
    for(int u=j;u<=n;u+=j)
    for(int v=u;v<=n;v+=u)
        ans=min(ans,abs(i-a)+abs(j-b)+abs(u-c)+abs(v-d));
    cout<<ans<<endl;
    return 0;
}

pypy3 解法, 执行用时: 236ms, 内存消耗: 29168K, 提交时间: 2021-12-13 22:17:26

A,B,C,D = map(int,input().split(' '))
ans = A+B+C+D
for a in range(1,10000):
    for b in range(a,10000,a):
        for c in range(b,10000,b):
            for d in range(c,10000,c):
                ans = min(ans,abs(A-a)+abs(B-b)+abs(C-c)+abs(D-d))
print(ans)

上一题