运行时错误,尽管我得到了预期的输出

时间:2018-06-28 07:28:38

标签: c++

我对CodeChef problem.的解决方案

我在计算机上以Turbo C ++的形式运行了此代码,并在codechef中使用了gcc编译器。

请帮助我摆脱运行时错误。

我的代码

#include<iostream>
using namespace std;
class game
{
    public:
        int i,q;
        long n;
        long a[1000000000];
        long h,t;
        int in();
        int out();

};
int game::in()
{
    cin>>i>>n>>q;
    if(i==1)
    {
        for(int k=0;k<n;k++)
            a[k]=1;
    }
    else
    {
        for(int k=0;k<n;k++)
            a[k]=2;
    }
    for(int r=1;r<=n;r++)
    {
        for(int p=0;p<r;p++)
        {
            if(a[p]==1)
                a[p]=2;
            else
                a[p]=1;
        }
    }
    return 0;
}
int game::out()
{
    for(int x=0;x<n;x++)
    {
        if(a[x]==1)
            h++;
        else
            t++;
    }
    if(q==1)
        cout<<endl<<h;
    else
        cout<<endl<<t;
    return 0;
}
int main()
{
    game s[10][20000];
    int t,g;
    cin>>t;
    for(int l=0;l<t;l++)
    {
        cin>>g;
        for(int j=0;j<g;j++)
        {
            s[l][j].in();
        }
    }
    for(int l=0;l<t;l++)
    {
        for(int j=0;j<g;j++)
            s[l][j].out();
    }
    return 0;
}

1 个答案:

答案 0 :(得分:3)

您的game对象包含一个long数组,其中包含10亿个元素。假设是64位计算机,则已经有8GB的内存。在main函数中,您分配了200,000个game实例,总内存使用量为1600TB。我认为您的可怜的计算机没有那么多内存。