Codeforces ラウンド #178 (ディビジョン 2)-A.シャースとオスコルス_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:54:57
オリジナル
1328 人が閲覧しました

Shaass と Oskols

テストごとの制限時間

2 秒

テストごとのメモリ制限

256 メガバイト

入力

標準入力

出力

標準出力

シャースは決定しました鳥を狩るために。互いに平行に並んだn本の水平電線があります。ワイヤには上から下に 1 から n の番号が付けられます。各電線にはいくつかのオスコルが隣り合って座っています。オスコルはシャースの領土に生息する美味しい鳥の名前です。 i 番目のワイヤーに AI オスコルが座っていると仮定します。

時々、シャースが鳥の 1 匹を撃ち、その鳥が死ぬことがあります (この鳥が i 番目のワイヤーに座っていると仮定します)。その結果、死んだ鳥の左側にある i 番目のワイヤー上のすべての鳥は怖がって、ワイヤー番号 i?-?1 に飛び上がります。上部のワイヤーが存在しない場合は飛び去ります。また、死んだ鳥の右側にあるすべての鳥は、ワイヤー番号 i?+?1 に飛び降ります。そのようなワイヤーが存在しない場合は、飛び去ります。

シャースは m 羽の鳥を撃ちました。各ワイヤー上の鳥の初期数が与えられ、ショット後に各ワイヤーに何羽の鳥が止まっているかを伝えます。

入力

入力の最初の行には整数 n,(1?≤?) が含まれています。 n?≤?100)。次の行には、スペースで区切られた整数のリスト a1,?a2,?...,?an,(0?≤?ai?≤?100) が含まれます。

3 行目には整数 m,(0?≤) が含まれます。 ?m?≤?100)。次の m 行のそれぞれには、2 つの整数 xi と yi が含まれます。整数は、i 回目にシャースが xi 番目のワイヤーで (左から) yi 番目の鳥を撃つことを意味します (1?≤?xi?≤?n,?1?≤?yi)。その時点で、xi 番目のワイヤーに少なくとも yi の鳥がいることが保証されています。

出力

出力の i 行目に、i 番目のワイヤー上の鳥の数を出力します。

サンプルテスト

入力

510 10 10 10 1052 53 132 121 134 6
ログイン後にコピー

出力

0125016
ログイン後にコピー

入力

32 4 112 2
ログイン後にコピー

出力

303
ログイン後にコピー





解题思路:有排電線杆、第一上面有ai只鸟、每次拿枪射杀第xi排の第yi只鸟、这只鸟肯定会死掉(意外性なし)、yi左边的鸟会i == 1 の場合、i-1 番目の根電柱にすべて到達し、i == n の場合、yi 右端のすべてが i+1 根電柱に到達します。それらはすべて完了しました。 解放された後、最後の各電線の数はそれぞれ多少です。





AC代コード:


#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define INF 0x7fffffffint a[105];int main(){    #ifdef sxk        freopen("in.txt","r",stdin);    #endif    int n, x, y, m;    while(scanf("%d",&n)!=EOF)    {        for(int i=1; i<=n; i++){            scanf("%d",&a[i]);        }        scanf("%d", &m);        for(int i=0; i<m; i++){            scanf("%d%d", &x, &y);            int t = min(a[x], y-1);            int tt = max(a[x]-y, 0);                a[x-1] += t;                a[x] -= t;                a[x+1] += tt;                a[x] -= tt;                  a[x] --;        }        for(int i=1; i<=n; i++)            printf("%d\n", a[i]);    }    return 0;}
ログイン後にコピー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート