在Codechef中为每个代码获取SIGEMT错误

时间:2019-07-19 20:22:14

标签: c++ algorithm c++11 data-structures

我一直在尝试一些练习问题,但是codechef ide对每个代码都给出相同的错误。甚至对于已经为该问题提交的代码。 这是我的代码,其中包含Codechef ide中的错误。我尝试过的任何其他提交的代码也给我同样的错误!

    #include<iostream>
    using namespace std;

    int main() {

    long long int n;
    cin>>n;

    long long int c[n], t[n];
    for(int i=0;i<n;i++) {
        cin>>c[i];
    }
    for(int i=0;i<n;i++) {
        cin>>t[i];
    }

    long long int tr = -1, a = -1, b = -1;
    for(int i=0;i<n;i++) {
        if(t[i] == 1) {
            if(tr == -1 || tr > c[i]) {
                tr = c[i];
            }
        }
        else if(t[i] == 2) {
            if(a == -1 || a > c[i]) {
                a = c[i];
            }
        }
        else {
            if(b == -1 || b > c[i]) {
                b = c[i];
            }
        }
    }

    if(tr == -1 || a == -1) {
        cout<<b<<endl;
    }
    else if(b == -1 || tr+a < b) {
        cout<<tr+a<<endl;
    }
    else {
        if(tr+a > b) {
            cout<<b<<endl;
        }
    }

    return 0;
    }

1 个答案:

答案 0 :(得分:0)

由于分段错误而发生。也可能由于访问内存超出范围或可执行文件占用大量内存而发生。提交代码时,错误将为SIGSEGV,这也表示相同。

特别是在代码中,您定义了两个long long int数组,它们可能占用大量内存,请尝试使用int或其他算法解决问题。