社区讨论

40分求助!!!

P4282[AHOI2008] 计算器参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lwls6g5y
此快照首次捕获于
2024/05/25 15:20
2 年前
此快照最后确认于
2024/05/25 17:14
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,x[100005],A[100005],B[100005],ans[100005],jw,out,cnt;
char op;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&x[i]);
	for(int i=1;i<=n;i++) scanf("%d",&A[i]);
	scanf(" %c",&op);
	for(int i=1;i<=n;i++) scanf("%d",&B[i]);
	if(op=='+'){
		for(int i=n;i>=1;i--){
			ans[i]=(A[i]+B[i]+jw)%x[i];
			jw=(A[i]+B[i]+jw)/x[i];
		}
		for(int i=1;i<=n;i++) printf("%d ",ans[i]);
		return 0;
	}
	else if(op=='-'){
		for(int i=n;i>=1;i--){
			if(A[i]>=B[i]+jw){
				ans[i]=A[i]-B[i]-jw;
				jw=0;
			} 
			else{
				ans[i]=A[i]*10-B[i]-jw;
				jw=1;
			}
		}
		for(int i=1;i<=n;i++) printf("%d ",ans[i]);
		return 0;
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...