【发布时间】:2014-01-02 22:21:51
【问题描述】:
我是编程新手。我在 Windows 7(x86) 上使用 Dev C++。我正在尝试运行以下程序。我认为没有逻辑错误导致程序崩溃。程序是在在线法官(Codeforces)上运行。 我应该怎么做才能成功执行程序?
我的解决方案:
#include<iostream>
using namespace std;
int main()
{
int n,i,j;
long long a[100000],b[100000],sort[200000],temp;
char aresult[100000],bresult[100000];
char*sortpoint[200000];
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i]>>b[i];
aresult[i]='0';
bresult[i]='0';
}
for(i=0;i<(n/2);i++)
{
aresult[i]='1';
bresult[i]='1';
}
i=0;
j=n+i;
for(i=0;i<n;i++)
{
sort[i]=a[i];
sort[j]=b[i];
sortpoint[i]=&aresult[i];
sortpoint[j]=&bresult[i];
j++;
}
for(i=0;i<(2*n);i++)
{
for(j=0;j<(2*n)-i-1;j++)
{
if(sort[j]>sort[j+1])
{
temp=sort[j];
sort[j]=sort[j+1];
sort[j+1]=temp;
}
}
}
for(i=0;i<n;i++)
{
*sortpoint[i]='1';
}
cout<<aresult<<endl<<bresult;
}
【问题讨论】:
-
不要分配堆栈上的所有内容。这很可能太多了。
-
您介意发布指向确切问题的链接吗?
-
您是否尝试过运行调试器来确认没有逻辑问题?
-
由于堆栈大小的限制,您不能定义如此大的静态数组。改为使用动态数组。例如
a = new long long[100000]或使用vector<long long> a(100000) -
@ShaneHsu-codeforces.com/problemset/problem/378/B