| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:n*lg(n)都能超时,求牛人指点,拜谢In Reply To:n*lg(n)都能超时,求牛人指点,拜谢 Posted by:nuanran at 2006-07-25 22:02:40 UP
#include <stdio.h>
> int main()
> {
> __int64 a,b,tmp;
> int f,st,ed,mid,i;
> while(scanf("%I64d%I64d",&a,&b)&&(a||b))
> {
> if(a==b)
> {
> printf("2 0\n");
> continue;
> }
> else if(a==0)
> {
> printf("0 2\n");
> continue;
> }
> f=0;
> for(i=2;i<=50000;i++)
> {
> st=1,ed=i-1;
> while(st<=ed)
> {
> mid=(st+ed)/2;
> tmp=(b-a)*mid*mid-a*(i-mid)*(i-mid)-2*a*mid*(i-mid)+a*(i-mid)-(b-a)*mid;
> if(tmp>0) ed=mid-1;
> else if(tmp<0) st=mid+1;
> else
> {
> f=1;
> printf("%d %d\n",mid,i-mid);
> break;
> }
> if(f) break;
> }
> if(f) break;
> }
> if(!f) printf("impossible\n");
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator