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; }