Compiler construction codechef编译器是如何工作的?
我想知道codechef编译器是如何工作的。实际上不仅仅是codechef编译器,其他竞争平台的编译器在后端的工作方式也是如此。因为我在本地编译器上获得的输出有时与codechef上的在线编译器不同 例如,在我的本地编译器上,当我运行以下代码时,我得到了正确的输出:Compiler construction codechef编译器是如何工作的?,compiler-construction,c++14,Compiler Construction,C++14,我想知道codechef编译器是如何工作的。实际上不仅仅是codechef编译器,其他竞争平台的编译器在后端的工作方式也是如此。因为我在本地编译器上获得的输出有时与codechef上的在线编译器不同 例如,在我的本地编译器上,当我运行以下代码时,我得到了正确的输出: #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() {
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
// your code goes here
int t;
cin >> t;
while (t--)
{
int val, N, Z, count = 0, evacuate = 0;
vector<int> v;
cin >> N >> Z;
for (int i = 0; i < N; i++)
{
cin >> val;
v.push_back(val);
}
std::make_heap(v.begin(), v.end());
while (Z > 0)
{
int power = v.front();
Z = Z - power;
std::pop_heap(v.begin(), v.end());
v.pop_back();
power = power / 2;
if (power)
{
v.push_back(power);
std::push_heap(v.begin(), v.end());
}
else if(power == 0 && Z > 0){
evacuate = 1;
break;
}
if (Z < 0)
{
count++;
break;
}
count++;
}
if (evacuate)
cout << "Evacuate" << endl;
else
cout << count << endl;
}
}
#包括
#包括
#包括我正在获得意外输出(仅0)
另外,代码正在处理
CodeChef编译器如何工作以及两者的输出如何不同?可能问题也可能出在代码上,但在本地,我正在为手动提供的输入获取正确的输出。刚刚检查,您的代码工作正常。问题是您没有任何可供输入的内容
选中“自定义输入”,然后输入“1 5 25 7 13 8 17 3”,您将看到预期的结果
编辑:
为此,首先选中红色圆圈中的复选框,然后下方会显示一个文本框,您可以在蓝色框中键入测试用例。可以在此处找到CodeChef使用的编译器:哦,那么我应该使用CodeChef使用的同一个编译器,而不是visual studio或其他任何编译器吗?在对问题进行否决表决之前,您是否研究了整个问题?不要担心使用相同的编译器。如果您不使用任何高级语言功能,并且您的代码没有UB,任何最新的编译器都会给出相同的结果。@HolyBlackCat请注意gcc 6.3有点旧,只部分支持c++17。将不支持string\u view
、gcd
或to\u chars
之类的操作。我想知道我没有什么类型的输入。我看到您刚刚在codechef上成功提交了代码,但做了哪些更改。@Shivanshhrivastava我没有更改任何内容,这正是您拥有的代码。抱歉,如果我不小心提交了它,不确定你是否还能继续工作。我只是想检查它是否有效。明白了,可能我应该提交而不是运行。我不熟悉codechef编译器,这就是为什么在上一期中被问及它的原因。@shivanshrivastava检查我的编辑,这就是您尝试自定义测试用例的方式。对于实践来说,这并不重要,但如果您可以先尝试不同的测试用例,这仍然很好。但是如果你要参加任何比赛,如果你提交了任何错误的答案,你通常会被扣分。最后一件事就是为什么我没有启用这个自定义输入。我的意思是我不能点击它。如何使用它?英雄联盟