已撤销
chenyukang
全部博文(22)
杂(0)
图论(1)
Dp(1)
排序(6)
数学(4)
并查集(3)
2010年(3)
2009年(19)
chunlove
fengergz
分类:
2009-11-08 21:41:28
//8004K 2110MS #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; typedef long long BigInt; const int MAX=1250001; BigInt A[MAX]; BigInt F[102]; int a1,a2,a3,a4,a5; int ans; int record; void Find(BigInt& t) { int i; int low=1; int high=A[0]; int mid; while(low<high){ mid=(low+high)/2; if(A[mid]==t){ record++; break; } else if(A[mid]<t) low=mid+1; else high=mid-1; } for(i=mid+1;i<=A[0]&&A[i]==t;i++) record++; for(i=mid-1;i>=1&&A[i]==t;i--) record++; } int main() { int num=0; for(int i=-50;i<=50;i++){ if(i!=0) F[++num]=i*i*i; } F[0]=num; while(scanf("%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5)==5){ if(a1==0&&a2==0&&a3==0&&a4==0&&a5==0){ printf("10000000000\n"); continue; } int num=0; for(int i=1;i<=F[0];i++){ for(int j=1;j<=F[0];j++){ for(int k=1;k<=F[0];k++){ BigInt t=a1*F[i]+a2*F[j]+a3*F[k]; A[++num]=t; } } } A[0]=num; sort(A+1,A+1+A[0]); ans=0; for(int i=1;i<=F[0];i++){ for(int j=1;j<=F[0];j++){ BigInt t=-(a4*F[i]+a5*F[j]); record=0; Find(t); ans+=record; } } printf("%d\n",ans); } return 0; }
上一篇:POJ 2376
下一篇:POJ 1650
登录 注册