Для скучных чисел тренировочного шлюза USACO у меня есть решение, которое работает для первых 4 тестовых случаев, но затем для тестового примера 5, который был приведен ниже для обхода потребности во входных файлах, моя программа получает правильный ответлокально при компиляции GCC и на моем телефоне (не уверен, какой компилятор).Если я отправляю ответ в USACO, он не дает правильного ответа.Из того, что я прочитал, это означает, что программа имеет какое-то неопределенное поведение где-то, но я ничего не смог найти.
#include <fstream>
#include <iostream>
#include <set>
using namespace std;
//ifstream fin("humble.in");
//ofstream fout("humble.out");
set<unsigned long> cont;
int main() {
int K = 6;
int N = 25000;
unsigned long values[]= {2, 3, 5, 7, 11, 13};
cont.insert(1);
unsigned long r = 0;
for (int i = 0; i <= N; i++) {
r = *cont.begin();
for (int j = 0; j < K; j++)
cont.insert(r*values[j]);
cont.erase(r);
}
cout << r << endl;
return 0;
}
Ответ, который я получаю локально (и правильный ответ) - 682628310. Ответ, который я получаю в USACO67108864.