zoukankan      html  css  js  c++  java
  • 排队

    【题目描述】

    h和小n在给小朋友们排队,有n(1<n≤100)个小朋友,序号为1到n,每个小朋友自身带着一个号码,他们排成一列,但号码不一定是有序的,现在小n问小h,如果从队列中随机抽取m(1≤m<n)个小朋友出列,求剩下小朋友中相邻两个小朋友号码乘积的总和。

    【输入格式】

    第一行一个整数n。

    第二行n个整数ai(1≤ai≤100),分别表示第1到i个小朋友的号码。

    第三行一个整数m。

    第四行m个整数,表示出列的小朋友的序号(原本的序号,也就是说之前的出列对每个小朋友的序号没有影响)。

    【输出格式】

    一行一个整数表示相邻两个小朋友号码乘积的总和。

    【输入样例】

    10

    14 87 28 29 49 27 84 10 65 43

    7

    1 3 5 7 8 9 10

    【输出样例】

    3306

    【样例解释】

        去掉第1,3,5,7,8,9,10位置的数后,剩下的数为87 29 27,相邻两个小朋友号码乘积的总和为87*29+29*27=3306


    分析

    先把未出列的小朋友记下来,再求剩下小朋友中相邻两个小朋友号码乘积的总和。


    程序:

    var
    n,i,j,p,m,s:longint;
    tj:int64;
    a,w,b:array[0..200]of longint;
    begin
        fillchar(a,sizeof(a),1);
        readln(n);
        for i:=1 to n do
        read(w[i]);
        readln;
        readln(m);
        for i:=1 to m do
        begin
            read(b[i]);
            w[b[i]]:=0;
        end;
        p:=0;
        for i:=1 to n do
        if w[i]<>0 then
        begin
            inc(p);
            a[p]:=w[i];
        end;
        tj:=0;
        for i:=1 to p-1 do
        tj:=tj+a[i]*a[i+1];
        write(tj);
    end.

  • 相关阅读:
    关于记忆力:遵从一些原则,自省增加经验,there is a way out of almost everything
    watch watch watch the video! I got almost addicted. Oh what a fuck!!!!
    mysqlhelper
    Android Tools update proxy
    Android Support library
    bat批处理
    Windows PowerShell Exit Codes
    Enable and Use Remote Commands in Windows PowerShell
    power shell remoting
    开发函数计算的正确姿势——轻松解决大依赖部署
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500109.html
Copyright © 2011-2022 走看看