CodeForces892B Wrath

来源:互联网 发布:ubuntu优麒麟 编辑:程序博客网 时间:2024/06/09 23:17

题目链接:http://codeforces.com/problemset/problem/892/B

题意:对于一排人来说,如果存在i > j && j >= i - a[i],则i可以杀死j,一个人杀死其他人都是同时进行的,问最后会剩下几个人。

思路:每当输入一个a[i]时,便判断其与其前面的是否符合上面的条件,符合就下标减一,知道没有元素符合这个条件或者下标变成0

#include <bits/stdc++.h>using namespace std;int n,a[1100000];int main(){    scanf("%d",&n);    int indx = 0,x;    for(int i = 1; i <= n; i ++){        scanf("%d",&x);        while(a[indx] && i - x <= a[indx]) indx --;        a[++ indx] = i;    }    printf("%d\n",indx);    return 0;}


原创粉丝点击