好奇的SIGKILL错误

时间:2013-11-14 10:22:23

标签: c++ sigkill

我的机器上没有收到SIGKILL错误,也没有在ideone.com在线编译器上收到错误 虽然它在spoj机器上给出了一个SIGKILL,但是无法弄清楚原因 编辑: 该程序需要使用少于256MB的数据,目前需要大约400MB 我如何最小化内存使用量,我只使用数组'c'中对角线或低于它的元素 这是代码:

#include<bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie(0);
#define r 1000000007
using namespace std;
int c[10000][10000];
int main(){_
int i,j,t;
c[0][0]=1;
for(i=1;i<10000;i++){
    c[i][0]=1;
    c[i][i]=1;
    for(j=1;j<i;j++){
        c[i][j]=c[i-1][j]+c[i-1][j-1];
        if(c[i][j]>=r){
            c[i][j]-=r;
        }
    }
}
cin>>t;
for(int f=1;f<=t;f++){
   int n,k,a[10000],ans=0;
   cin>>n>>k;
   for(i=0;i<n;i++){
    cin>>a[i];
   }
   sort(a,a+n);
   for(j=k-1;j<n;j++){
        ans+=((long long)a[j]*c[j][k-1])%r;
   }
   cout<<"Case #"<<f<<": "<<ans<<"\n";
}
return 0;
}

1 个答案:

答案 0 :(得分:1)

SPOJ强加了内存限制,你的2D数组似乎超出了这个限制:link