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 lyg at 2008-10-20 11:38:47 and last updated at 2008-10-20 11:42:16
In Reply To:不能ac的O(1)代码。。。。 Posted by:Qinz at 2008-10-19 22:29:45
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

long long factor,denominator;
void setAns(long long a, long long b)
{
    factor = a;
    denominator = b;
}

int main()
{
    long long n,m,k;
    cin >>m;
    while (m--)
    {
        cin >>n >>k;
        if (k<=n/2+1) setAns(1,n-k+1);
        else if (k<=5*n/6+1&&n%2==0)
        {
            if ((k-n/2)%2==0)
                setAns(2, n-(k-n/2-1));
            else
                setAns(1, n/2-(k-n/2-1)/2);
        }
        else if (k<=5*n/6+1&&n%2==1)
        {
            if ((k-n/2)%2==0)
                setAns(2, n-(k-n/2-2));
            else
                setAns(1, n/2-(k-n/2-2)/2);
        }
        else if (n%6==1)
        {
            if ((k-5*n/6)%4==2)
                setAns(2, 2*n/3-(k-5*n/6-2)/4*2+1);
            else if ((k-5*n/6)%4==3)
                setAns(3, n-(k-5*n/6-3)/4*3);
            else if ((k-5*n/6)%4==0)
                setAns(1, n/3-(k-5*n/6)/4+1);
            else
                setAns(3, n-(k-5*n/6-1)/4*3+1);
        }
        else if (n%6==2)
        {
            if ((k-5*n/6)%4==3)
                setAns(2, 2*n/3-(k-5*n/6-3)/4*2);
            else if ((k-5*n/6)%4==0)
                setAns(3, n-(k-5*n/6)/4*3+2);
            else if ((k-5*n/6)%4==1)
                setAns(1, n/3-(k-5*n/6-1)/4+1);
            else
                setAns(3, n-(k-5*n/6-2)/4*3);
        }
        else if (n%6==3)
        {
            if ((k-5*n/6)%4==0)
                setAns(2, 2*n/3-(k-5*n/6)/4*2+1);
            else if ((k-5*n/6)%4==1)
                setAns(3, n-(k-5*n/6-1)/4*3+1);
            else if ((k-5*n/6)%4==2)
                setAns(1, n/3-(k-5*n/6-2)/4);
            else
                setAns(3, n-(k-5*n/6-3)/4*3-1);
        }
        else if (n%6==4)
        {
            if ((k-5*n/6)%4==1)
                setAns(2, 2*n/3-(k-5*n/6-1)/4*2+1);
            else if ((k-5*n/6)%4==2)
                setAns(3, n-(k-5*n/6-2)/4*3);
            else if ((k-5*n/6)%4==3)
                setAns(1, n/3-(k-5*n/6-3)/4);
            else
                setAns(3, n-(k-5*n/6-4)/4*3-2);
        }
        else if (n%6==5)
        {
            if ((k-5*n/6)%4==3)
                setAns(2, 2*n/3-(k-5*n/6-3)/4*2);
            else if ((k-5*n/6)%4==0)
                setAns(3, n-(k-5*n/6)/4*3+2);
            else if ((k-5*n/6)%4==1)
                setAns(1, n/3-(k-5*n/6-1)/4+1);
            else
                setAns(3, n-(k-5*n/6-2)/4*3);
        }
        else
        {
            if ((k-5*n/6)%4==3)
                setAns(2, 2*n/3-(k-5*n/6-3)/4*2-1);
            else if ((k-5*n/6)%4==0)
                setAns(3, n-(k-5*n/6)/4*3+1);
            else if ((k-5*n/6)%4==1)
                setAns(1, n/3-(k-5*n/6-1)/4);
            else
                setAns(3, n-(k-5*n/6-2)/4*3-1);
        }
        cout <<factor <<"/" <<denominator <<endl;
    }
    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