您的位置:首页 > 其它

南邮 OJ 2049 硬币正面数量

2015-08-08 10:34 232 查看


硬币正面数量

时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte

总提交 : 159 测试通过 : 41

比赛描述

有n枚硬币,现将它们排成一排,从1开始编号到n,有的正面朝上,有的反面朝上。现在要求你选择两个下标i和j
(1≤i; i≤j ; j≤n),将编号在区间 [i,j] 中的硬币翻面,使得所有硬币正面朝上的数量最多。

输入

单组测试样例,第一行为一个整数n(1<=n<=100)

第二行为n个整数(1表示正面,0表示反面)

输出

输出一个整数——经过翻面后所有硬币中正面朝上的个数。

样例输入

5

1 0 0 1 0

样例输出

4

题目来源

yuman

#include<iostream>
using namespace std;
int main(){
//	freopen("test.txt","r",stdin);
int n,i,j,k,maxSum,sum;
char a[100];
scanf("%d",&n);
getchar();
for(k=0;k<n;k++){
scanf("%c",a+k);
getchar();
}
maxSum = 0;
for(i=0;i<n;i++){
for(j=i;j<n;j++){
sum = 0;
for(k=0;k<n;k++){
if(k<i || k>j){
if('1'==a[k] && ++sum>maxSum){
maxSum = sum;
}
}else{
if('0'==a[k] && ++sum>maxSum){
maxSum = sum;
}
}
}
}
}
printf("%d\n",maxSum);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: