Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

谁能帮我看看吗 我感觉没有错诶

Posted by ZYFniubi at 2018-08-05 17:43:42 on Problem 2142
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

struct acm{
    int x,y;
};

int a,b,d,x,y;
acm node[50001];
bool cmp(acm m,acm n)
{
    if(m.x + m.y != n.x + n.y)
        return m.x + m.y < n.x + n.y;
    else
        return m.x * a + m.y * b < n.x * a + n.y *b;
    
}

int main()
{
    while (~scanf("%d%d%d",&a,&b,&d))
    {
        memset(node, 0, sizeof(node));
        if(a == 0 && b == 0 && d == 0)
            break;
        int MIN = 9999999,t = 0;
        for(int i = 0 ; i <= 50000 ; i++)
        {
            if(MIN != 9999999 && i > MIN)break;
            if((a * i - d) >= 0 && (a * i - d) % b == 0)
            {
                int ans = i + ( (a * i - d) / b );
                if(MIN > ans )
                {
                    MIN = ans;
                    node[t].x = i;
                    node[t].y = (a * i - d) / b;
                    t++;
                }
            }
            if((a * i + d) >= 0 && (a * i + d) % b == 0)
            {
                int ans = i + ( (a * i + d) / b );
                if(MIN > ans )
                {
                    MIN = ans;
                    node[t].x = i;
                    node[t].y = (a * i + d) / b;
                    t++;
                }
            }
            if((a * i - d) <= 0 && (a * i - d) % ((-1) * b) == 0)
            {
                int ans = i + ( (a * i - d) / ((-1) * b) );
                if(MIN > ans )
                {
                    MIN = ans;
                    node[t].x = i;
                    node[t].y = ( (a * i - d) / ((-1) * b) );
                    t++;
                }
            }
        }
        sort(node,node + t,cmp);
        printf("%d %d\n",node[0].x,node[0].y);
    }
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator