两种写法都是一样的思路,但是第一种写法只有10分。。。
下载了第一个判分点的输入输出的数据,明明我第一个函数的输出结果是对的但是为啥判我错捏,为什么第二个函数一样的输出又能对捏
蒟蒻已经蒙了,求大佬解答
#include<bits/stdc++.h>
#include<set>
#define forr(i,a,b) for(int i=(a);i<(b);i++)
#define INIT() do{\
ios::sync_with_stdio(0); \
cin.tie(0);\
cout.tie(0);\
}while(0);
#define endl '\n'
const int N = 1e4;
using namespace std;
void function1(){
int n, m;
cin>>n>>m;
int arr[N] = {0};
forr(i,0,n) cin>>arr[i];
int left, right, sum, ans;
left = right = 0;
forr(i,0,m){
sum += arr[right];
right++;
}
ans = sum;
while(right<n){
sum = sum + arr[right] - arr[left];
right++;
left++;
ans = min(ans, sum);
}
cout<<ans;
}
void function2(){
int n, m, s = 0, l = 0;
cin>>n>>m;
set<int> a;
set<int>::iterator iter;
int arr[N] = {0};
forr(i,0,n){
cin>>arr[i];
s+=arr[i];
if(i>=m-1){
a.insert(s);
s -= arr[i-m+1];
}
}
iter = a.begin();
cout<<*iter;
}
int main(){
INIT();
function1();
return 0;
}