2017京東春招C/C++プログラミング問題(1)——チーム
1347 ワード
/* :
, n 。 : , 。
1 n , i j i j 。
x, x ,
。 , ?
:
, n(1<=n<=100000), n , 。 1-9 x,
x ; X ; # 。 。
:
, 。
:
9
X1X#2X#XX
:
3
Hint:
, 9 , 2 1 , 1,3 ,
5 2 , 3,6 。 , 1,3,6 , 3。*/
#include
#define MAXSIZE 100000
int main(){
int n, i, pol[MAXSIZE],theif, temp,thf[MAXSIZE];
char line[MAXSIZE];
scanf("%d",&n);
getchar();
for(i=1; i<=n; i++){
scanf("%c", &line[i]);
}
theif=0;
for(i=1; i<=n; i++){
if(line[i]=='X'){
thf[i]=1;//i
}
}
for(i=1; i<=n; i++){
if(line[i]>='1' && line[i]<='9'){
pol[i]=line[i]-'0'; //i
for(temp=i+1; temp<=i+pol[i]; temp++){
if(line[temp] == 'X' && thf[temp] != 0){
theif++;
thf[temp] = 0;
}
}
for(temp=i-1; temp>=i-pol[i]; temp--){
if(line[temp] == 'X' && thf[temp] != 0){
theif++;
thf[temp] = 0;
}
}
}
}
printf("%d", theif);
return 0;
}