记录编号 608211 评测结果 AAAAAAAAAA
题目名称 4077.小b爱取模 最终得分 100
用户昵称 Gravatarwdsjl 是否通过 通过
代码语言 C++ 运行时间 2.199 s
提交时间 2025-10-24 15:05:03 内存使用 90.62 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 1e7+10;

int res,a[N],k,n,b[N],s[N];
char c[N];

signed main(){
	freopen("changgao_modulo.in","r",stdin);
	freopen("changgao_modulo.out","w",stdout);
	cin>>k;
	scanf("%s",c+1);
	c[0]='0';
	n=strlen(c+1);
	for(int i=1;i<=n;i++){
		a[i]=c[i]-'0'; 
	}
	for(int i=1;i<=n;i++){
		b[i]=(k-a[i]+a[i-1])%k;
	}
	for(int i = 1;i <= n;i++){
		s[i]=s[i-1]+b[i];
	}
	for(int i=k-1;i>=0;i--){
		int minn=1e18;
		for(int j=n;j>=1;j--){
			minn=min(minn,s[j]);
			if(minn>=k&&b[j]==i){
				minn-=k;
				b[j]-=k;
			}
		}
		for(int j=1;j<=n;j++)s[j]=s[j-1]+b[j];
	} 
	for(int i=1;i<=n;i++)res+=max(0,b[i]);
	printf("%lld",res); 
	return 0;
}