0
最近、私はthisの問題を練習していました。ここでは、幼虫によって無傷のまま残されている葉の総数を計算する必要があります。何枚の葉が無傷で残っているかを計算するコード
幸いにも私はコードをかなり速く、それがRuntime Error
をIARCS裁判官によって与えたことを知りました。ここで
は、特定のテストケースである:ここで
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;
}
しかし、驚くべき部分は、コードが私のPCに正確な答えを与えている、GDBはまた同じことを行いますしかし、そこそこのIARCS裁判官がいます。
誰でも私を助けることができますか?
long long caterpillars [k];は標準ではないので、コンパイルしないでください。 'std :: vector'と置き換えるべきです。 – NathanOliver
誰がコンパイルしないと言ったのですか? –
私はそうすべきではないと言った。警告が表示されていない場合に許可するコンパイラがあります。この["working"](http://coliru.stacked-crooked.com/a/86d08a258d1ae8f5)と["non-working"](http://coliru.stacked-crooked.com/a/1654f30c7c6db9f3)の例を参照してください – NathanOliver