我对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;
}
答案 0 :(得分:3)
您的game
对象包含一个long
数组,其中包含10亿个元素。假设是64位计算机,则已经有8GB的内存。在main
函数中,您分配了200,000个game
实例,总内存使用量为1600TB。我认为您的可怜的计算机没有那么多内存。