http://acm.pku.edu.cn/JudgeOnline/problem?id=1212
Код:
#include <iostream>
#define N (1000000)
using namespace std;
int main(void)
{
static int c[N + 1];
int k = 0;
for(int i = 2; i <= N; i++) {
k = (k + 15) % i;
c[i] = k;
}
int lo, hi;
while(cin >> lo >> hi) {
if(lo == 0 && hi == 0) break;
static bool isok[N + 1];
for(int i = 1; i <= lo / 2; i++) {
isok[i] = true;
}
for(int i = lo; i <= hi; i++) {
isok[c[i]] = isok[i - c[i]] = false;
}
bool flag = false;
for(int i = 1; i <= lo / 2; i++) {
if(isok[i]) {
cout << i << endl;
flag = true;
break;
}
}
if(!flag) {
cout << "Better estimate needed" << endl;
}
}
return 0;
}