解
模拟?不可能的。
…
我们可以发现,小球的移动顺序,及是否左右移动是可以不用处理的。因为球都没有差别,所以这些球定会沉到它能沉到的最低处,像水一样填满间隙。
一个球的得分 = 最终位置的深度 - 起始位置深度。
所以我们可以贪心。
从底部往上走,看见空位就先记录下来,有球的话便沉到空位上,同时记录答案。遇到可以封住上下的墙的话就把空位的记录全部删掉,因为上面的球不可能透过这个墙掉下来。
注意:某个球如果沉下去了话,当前位置也能算是空位。
代码
#include<cstdio>
int n,c[600050][3],h,t,ans,Q[600050];
char read(){
char cc = getchar();
while(cc!='o'&&cc!='.'&&cc!='x') cc = getchar();