一样的思路,为什么C++能过,Go不能过
今天在洛谷上做了一道题,想用Go做练练手,但是没过,但是我把第一个没WA的数据下载下来,发现我的输出和例子一样,但就是不给过,于是我用c++写了一遍,思路步骤都一样,结果c++过了,真奇怪
#include<map>
#include <iostream>
using namespace std;
int main(){
int n,m;
int i;
cin>>n>>m;
int *p= (int*)malloc(n*4);
int temp = 0;
int min =0 ;
for(i=0;i<n;i++){
cin>>*(p+i);
if(i<m){
temp+=*(p+i);
min+=*(p+i);
}
}
for(i=m;i<n;i++){
temp-=*(p+i-m);
temp+=*(p+i);
if(temp<min){
min = temp;
}
}
cout<<min;
}
这是Go语言的代码
package main
import "fmt"
func main(){
var n, m int
fmt.Scanf("%d %d",&n,&m)
nums:=make([]int,n)
temp:=0
min:=0
for i:=0;i<n;i++{
fmt.Scanf("%d",&nums[i])
if i<m{
temp+=nums[i]
}
}
min=temp
for i:=m;i<n;i++{
temp-=nums[i-m]
temp+=nums[i]
if temp<min{
min=temp
}
}
fmt.Print(min)
}
其中一个输入是这样的:
输出