类似的代码给出了一个sigsegv错误

时间:2014-08-15 18:37:16

标签: c++

我在codechef上练习一个问题,我遇到了一个sigsegv错误,当我看到问题的setter解决方案时,我发现它与我的相似。

没有使用正确的数据类型是一个问题还是其他问题?

约束是 t,阵列的每个元素a& c< = 10 ^ 6 内存限制256MB

我的代码:

#include <iostream>
#include <stdio.h>
#include "algorithm"

using namespace std;

int main() 
{
long long int t;
int i;
scanf("%lld",&t);
long long int a[t],c[t],temp=0;


for(i=0;i<t;i++)
{
    scanf("%lld",&a[i]);
}

for(i=0;i<t;i++)
{
    scanf("%lld",&c[i]);
}

sort(a,a+t);
sort(c,c+t);

for(i=0;i<t;i++){
    temp=temp+a[i]*c[i];
}
printf("%lld",temp);
return 0;   
}

问题设定者的代码:

#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
vector<long long> cats, cal;
int main(){
int n;
long long temp;
scanf("%d", &n);
for(int i=0;i<n;i++){
scanf("%lld", &temp);
cats.push_back(temp);
}
for(int i=0;i<n;i++){
scanf("%lld", &temp);
cal.push_back(temp);
}
sort(cats.begin(), cats.begin() + n);
sort(cal.begin(), cal.begin() + n);
temp = 0;
for(int i=0;i<n;i++)
temp = temp + cats[i]*cal[i];
printf("%lld\n", temp);
return 0;
}

0 个答案:

没有答案