列表

详情


NC237672. 运算

描述

给定 个整数 a_0a_n,其中 ,你可以在每两个数之间填上加,减,除,按位与,按位或,按位异或中的任意一个运算符(不可以填乘),然后不计优先级,从左至右进行运算,得到一个结果。求结果最大值。

这里的按位与,按位或,按位异或一个数为按位与,按位或,按位异或一个数的绝对值。除为向 0 取整。

对于全部数据,

输入描述

第一行一个整数 n

第二行 个整数表示序列 a

输出描述

输入一行一个整数表示答案。

示例1

输入:

10
0 6 10 -10 -9 -6 10 -6 9 -10 0

输出:

76

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 99ms, 内存消耗: 504K, 提交时间: 2022-06-17 19:18:26

#include <cstdio>

int n;
int main(){
	scanf("%d",&n);
	long long tot=0;
	for(int i=1,a;i<=n+1;++i)scanf("%d",&a),tot+=1ll*((a<0)?-a:a);
	printf("%lld\n",tot);
}

pypy3 解法, 执行用时: 564ms, 内存消耗: 80104K, 提交时间: 2022-06-17 19:22:58

n = int(input())
a = list(map(int, input().split()))
ans = 0
for i in a:
    if i < 0:
        i = -i
    ans += i
print(ans)

Python3 解法, 执行用时: 370ms, 内存消耗: 69344K, 提交时间: 2022-06-30 18:20:08

n = int(input())
a = list(map(lambda x:abs(int(x)),input().split()))
print(sum(a))

上一题