Utawarerumono——————暴力

链接:https://www.nowcoder.com/acm/contest/201/C
来源:牛客网

题目描述
算术是为数不多的会让Kuon感到棘手的事情。通常她会找Haku帮忙,但是Haku已经被她派去买东西了。于是她向你寻求帮助。
给出一个关于变量x,y的不定方程ax+by=c,显然这个方程可能有多个整数解。Kuon想知道如果有解
使得 p 2 ∗ x 2 + p 1 ∗ x + q 2 ∗ y 2 + q 1 ∗ y p2*x2+p1*x+q2*y2+q1*y p2x2+p1x+q2y2+q1y最小的一组整数解是什么。
为了方便,你只需要输出 p 2 ∗ x 2 + p 1 ∗ x + q 2 ∗ y 2 + q 1 ∗ y p2*x2+p1*x+q2*y2+q1*y p2x2+p1x+q2y2+q1y的最小值。
输入描述:
第一行三个空格隔开的整数 a , b , c ( 0 ≤ a , b , c ≤ 1 0 5 ) a,b,c(0 ≤ a,b,c≤ 10^5) a,b,c(0a,b,c105)
第二行两个空格隔开的整数 p 1 , p 2 ( 1 ≤ p 1 , p 2 ≤ 1 0 5 ) p1,p2(1 ≤ p1,p2 ≤ 10^5) p1,p2(1p1,p2105)
第三行两个空格隔开的整数 q 1 , q 2 ( 1 ≤ q 1 , q 2 ≤ 1 0 5 ) q1,q2(1 ≤ q1,q2 ≤ 10^5) q1,q2(1q1,q2105)
输出描述:
如果方程无整数解,输出“Kuon”。
如果有整数解,输出 p 2 ∗ x 2 + p 1 ∗ x + q 2 ∗ y 2 + q 1 ∗ y p2*x2+p1*x+q2*y2+q1*y p2x2+p1x+q2y2+q1y的最小值。
示例1
输入
2 2 1
1 1
1 1

输出
Kuon

示例2
输入
1 2 3
1 1
1 1

输出
4


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn = 2e5+7;
const ll INF = 0x3f3f3f3f3f3f3f3f;
ll a,b,c,p1,p2,q1,q2;
int main()
{
        while(~scanf("%lld %lld %lld %lld %lld %lld %lld",&a,&b,&c,&p1,&p2,&q1,&q2))
        {
                ll ans= INF;
                for(ll i=-maxn;i<maxn;i++)
                {
                        ll x=(c-b*i)/a;
                        if(x*a+i*b!=c)  continue;
                        ll mid=p2*x*x+p1*x+q2*i*i+q1*i;
                        ans=min(mid,ans);
                }
                if(ans==INF)    puts("Kuon");
                else            printf("%lld\n",ans);
        }
        return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值