栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1964 Bound Found

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1964 Bound Found

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;#define maxn 100005#define INF 2000000000typedef pair<int,int> pii;int n,k;pii a[maxn];int Abs(int x) {        return x > 0 ? x : -x;}void solve(int x) {        int sum = 0,s = 0,pos = 1,v,ans = INF,l,r;        //printf("ans = %dn",ans);        for(; s <= n && pos <= n;) {     int tem = a[pos].first - a[s].first;     //printf("tem = %dn",tem);     if( Abs(tem - x) < ans) {  ans = Abs(tem - x);  l = a[s].second;  r = a[pos].second;  v = tem;     }     if(tem > x) {  ++s;     } else if(tem < x) {  ++pos;     } else {  break;     }     if(s == pos) ++pos;        }        if(l > r) swap(l,r);        printf("%d %d %dn",v,l + 1,r);}int main() {        while(~scanf("%d%d",&n,&k) ) {     if(!n && !k) break;     int sum = 0;     a[0] = pii(0,0);     for(int i = 1; i <= n; ++i) {  int ch;  scanf("%d",&ch);  sum += ch;  a[i] = make_pair(sum,i);     }     sort(a,a + n + 1);     for(int i = 1; i <= k; ++i) {  int t;  scanf("%d",&t);  solve(t);     }        }        return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号