NC215147. 小西和数字转换
描述
输入描述
第一行输入一行三个整数第二行输入一个长度为的只由0和1组成的字符串表示这个数字的初始状态
输出描述
输出一行一个整数表示答案
示例1
输入:
11 5 2 11010100101
输出:
1
示例2
输入:
11 5 1 11010100101
输出:
3
C(clang11) 解法, 执行用时: 6ms, 内存消耗: 624K, 提交时间: 2020-12-21 19:29:28
#include<stdio.h> int main() { int n,x,y,i,j; char a[200000]; scanf("%d%d%d\n",&n,&x,&y); int c=0; gets(a); for(i=n-x;i<n;i++) { if(a[i]=='1'&&i!=n-y-1) c++; } if(a[n-y-1]=='0') c++; printf("%d",c); return 0; }
C++(clang++11) 解法, 执行用时: 6ms, 内存消耗: 504K, 提交时间: 2020-12-19 15:27:13
#include<stdio.h> int n,i,x,y,s=0; char a[300001]; int main() { scanf("%d%d%d\n",&n,&x,&y); scanf("%s",a); for(i=n-1;i>=n-x;i--) { if(a[i]=='1')s++; } if(a[n-y-1]=='0')s++; else s--; printf("%d",s); return 0; }
Python3 解法, 执行用时: 66ms, 内存消耗: 7100K, 提交时间: 2021-11-25 13:03:26
n,x,y=map(int,input().split()) res=input() if res[-y-1]=='1': cnt=res.count('1',n-x,)-1 else: cnt=res.count('1',n-x,)+1 print(cnt)