NC230095. power
描述
读取一个数组
再读入个查询
根据查询要求将结果输出至屏幕。
输入描述
第一行为一个正整数,指明以下的数组长度为。
第二行串
第三行为一个正整数,指明以下的查询数为。
第三行到第行表示个查询
每个查询输入一个整数
要求计算串中,所有为的索引到的距离和
>索引到的距离为
>
>索引从开始
输出描述
对每一个询问将答案单独一行输出到屏幕
示例1
输入:
5 10010 3 1 4 2
输出:
3 3 3
C++ 解法, 执行用时: 6ms, 内存消耗: 460K, 提交时间: 2021-12-14 22:16:50
#include<bits/stdc++.h> using namespace std; int main(){ int n,q,zf=0,sum=0; string a; cin>>n; cin>>a; cin>>q; while(q--){ sum=0; cin>>zf; zf--; for(int i=0;i<n;i++){ if(a[i]=='1') { sum+=abs(zf-i);} } cout<<sum<<endl; } }
pypy3 解法, 执行用时: 159ms, 内存消耗: 26864K, 提交时间: 2021-12-12 14:23:37
n=int(input()) zo=str(input()) T=int(input()) for i in range(T): idn=int(input()) m=0 t=0 for i in zo: t+=1 if i=='1': m+=abs(idn-t) print(m)
Python3 解法, 执行用时: 242ms, 内存消耗: 4580K, 提交时间: 2022-04-28 16:56:43
ll=int(input())+1 l='0'+input() for _ in range(int(input())): ans=0 n=int(input()) for x in range(1,ll): if l[x]=='1': ans+=abs(n-x) print(ans)