求助!!!
查看原帖
求助!!!
1216740
_Misaka_Ning_楼主2024/8/7 15:08
两种写法都是一样的思路,但是第一种写法只有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'
//typedef unsigned long long ull;
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();
  //function2();

    return 0;
}


2024/8/7 15:08
加载中...