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:要使用高精度吗?In Reply To:要使用高精度吗? Posted by:Move at 2007-09-22 17:41:07 > 我用了4个64位来存储 > 还是WA。 > > 以下是我的代码,请指教。 > > #include <stdio.h> > #include <string.h> > #include <iostream> > #include <algorithm> > using namespace std; > > #define N 100006 > #define M 100000000 > > typedef struct > { > __int64 d; > __int64 t; > }cow; > cow a[N]; > > bool cmp(cow a,cow b) > { > if(a.d==b.d) return a.t < b.t; > else return a.d > b.d; > } > > int main() > { > int i,j,n; > __int64 sum[4],ti; > __int64 t,d; > > memset(a,0,sizeof(a)); > scanf("%d",&n); > for(i=0;i<n;i++) > { > scanf("%I64d%I64d",&t,&d); > a[i].t=t; > a[i].d=d; > } > sort(a,a+n,cmp); > ti=0; > for(i=0;i<4;i++) > sum[i]=0; > for(i=0;i<n;i++) > { > sum[0]+=a[i].d*ti; > for(j=0;j<3;j++) > { > if(sum[j]>=M) > { > sum[j+1]+=sum[j]/M; > sum[j]=sum[j]%M; > } > } > ti+=2*a[i].t; > } > > if(sum[3]!=0) printf("%I64d%08I64d%08I64d%08I64d\n",sum[3],sum[2],sum[1],sum[0]); > else if(sum[2]!=0) printf("%I64d%08I64d%08I64d\n",sum[2],sum[1],sum[0]); > else if(sum[1]!=0) printf("%I64d%08I64d\n",sum[1],sum[0]); > else printf("%I64d\n",sum[0]); > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator