| ||||||||||
| 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到死两个变量忘初始化了,本地这编译器直接给初始化为0了,各种测试都没问题交上去就是WA!
千万千万不能忘了初始化,要不然诡异的WA会让你崩溃的!
好久没贴代码了,贴一下0ms水过的代码留念
#include<iostream>
#include<Cstdio>
#include<string>
using namespace std;
int pri[15001];
int num, res[15001];
void init()
{
int i, j;
for(i = 2; i <= 15000; i++)
pri[i] = -1;
for(i = 2; i < 15000; i++)
{
if(pri[i] == 1)
continue;
for(j = 2; i * j <= 15000; j++)
pri[i * j] = 1;
}
}
void get()
{
int i, num = 1;
res[0] = 0;
for(i = 0; i < 15000; i++)
if(pri[i] == -1)
{
res[num] = res[num - 1] + i;
num++;
}
res[num] = 90000000;
}
int cal(int input)
{
int temp = 1, limit, small = 0, big, count = 0;
while(res[temp] - res[temp - 1] < input)
temp++;
limit = temp;
while(small < limit)
{
big = small + 1;
while(res[big] - res[small] < input)
big++;
if(res[big] - res[small] == input)
count++;
small++;
}
return count;
}
int main()
{
int input;
init();
get();
while(1)
{
scanf("%d", &input);
if(!input)
break;
cout << cal(input) << endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator