最近我正在练习this问题,我需要计算毛虫未受伤害的叶子总数。
幸运的是,我的代码非常快,只是发现IARCS法官给了Runtime Error
。
以下是特定的测试用例:
762744433 19
96412 40852 19611 563380 236733 559627 750968 413673 300332 65 682403 441221 180068 668364 493413 443706 613246 715846 728157
以下是代码:
#include <iostream>
#include <vector>
#include <algorithm>
int main (int argc, char const* argv[])
{
long long n , k;
std::cin >> n >> k;
long long caterpillars[k];
std::vector<long long>v;
for(int i=0;i<k;i++){
std::cin >> caterpillars[i];
}
for(int i=0;i<k;i++){
for(int j=0;caterpillars[i]*j +1 <= n;j++){
int temp = caterpillars[i]*j +1;
v.push_back(temp);
}
}
sort(v.begin(),v.end());
int number = 0;
long long prev = 0;
for(int i=0;i<v.size();i++){
if(v[i] != prev){
number++;
}
prev = v[i];
}
std::cout << n - number << std::endl;
return 0;
}
但令人惊讶的部分是代码在我的电脑中给出了准确的答案,gdb也做了同样的事情,但是那些糟糕的IARCS判断。
任何人都可以帮助我吗?
答案 0 :(得分:0)
判断指定的内存限制为64 MB。您用来解决问题的过程并不能保证消耗的空间小于64 MB。实际上它会在很多测试用例中超过限制。示例:1000000000 1 2.
最具竞争力的编程网站确实区分了运行时错误和超出内存限制。如果IARCS也这样做,则必须有其他原因导致错误。