样例过 0分 大佬求助
查看原帖
样例过 0分 大佬求助
500803
zzxzzxCCC楼主2022/7/19 17:22

直接贴代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<bits/stdc++.h>
using namespace std;
struct Node{
	int number;//number:数字 
	int chttc;//chttc:特征值 
	int score;//score:  分数 
}children[1000050];
int n,p;
int main(){;
	scanf("%d%d",&n,&p);
	scanf("%d",&children[1].number);
	children[1].chttc=children[1].number;
	int flag=1;
	for(int i=2;i<=n;i++){
		scanf("%d",&children[i].number);
		children[i].chttc+=children[i-1].chttc;
		if(children[i].number>0){
		    children[i].chttc+=children[i].number;
			flag=i;
		}
		else
			children[i].chttc=children[flag].chttc;
	}
	int MAX=children[1].chttc;
	children[1].score=children[1].chttc;
	children[2].score=children[1].score+children[1].chttc;
	int Maxx=children[2].score;
	if(children[2].score>MAX)
	    MAX=children[2].score;
	if(MAX<Maxx)
	    MAX=Maxx;
	for(int i=3;i<=n;i++){
		if((children[i-1].score+children[i-1].chttc)%p>Maxx)
			Maxx=(children[i-1].score+children[i-1].chttc)%p;
		if(MAX<Maxx)
	        MAX=Maxx%p;
	    children[i].score=Maxx;
	}
	printf("%d",MAX%p);
	return 0;
}
2022/7/19 17:22
加载中...