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 |
求解各路大神帮忙看下,讨论版的测试数据都过了- -拍点也都过了,但一交就WA#include <cstdio> #include <cstring> #include <iostream> #define INF 0x7f7f7f7f using namespace std; const int rf = 46340; int maxans,minans,minx,miny,maxx,maxy; int i,j,ll,rr,x = 0,y = 0,z,temp; int len,l,r; bool v[1010000],flag; int su[5000]; void db(){ memset(v,1,sizeof(v)); for (i = 2; i <= rf; i++){ if (v[i]){ su[++len] = i; for (j = i+i; j <= rf; j+=i) v[j] = 0; } } } int main(){ db(); while (~scanf("%d%d",&l,&r)){ memset(v,1,sizeof(v)); minans = INF; maxans = -INF; x = 0; y = 0; if (l == 1) v[0] = 0; for (i = 1; i <= len; i++){ ll = l/su[i]; rr = r/su[i]; for (j = l/su[i]; j <= r/su[i]; j++) if (j > 1 && su[i]*j-l >= 0) v[su[i]*j-l] = 0; } for (i = l; i < r; i++){ if (v[i-l]){ y = i; if (x > 0){ if (y-x > maxans){ maxans = y-x; maxx = x; maxy = y; } if (y-x < minans){ minans = y-x; minx = x; miny = y; } } x = y; } } if (v[r-l]){ if (x > 0){ if (r-x > maxans){ maxans = r - x; maxx = x; maxy = r; } if (r-x < minans){ minx = x; miny = r; } } } if (maxans > 0) printf("%d,%d are closest, %d,%d are most distant\n",minx,miny,maxx,maxy); else printf("There are no adjacent primes.\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