先拿小模拟练手再写大模拟结果小模拟挂了/cf
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int hp, st, de, hp0, st0, de0, q, n, m, x, y, op, d;
int dx[5]={0,0,0,-1,1};
int dy[5]={0,-1,1,0,0};
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
cin>>hp0>>st0>>de0;
cin>>x>>y;
cin>>st>>de;
cin>>q;
while(q--)
{
cin>>op;
if(op==1)
{
cout<<hp<<" "<<st<<" "<<de<<"\n";
}
else
{
cin>>d;
x+=dx[d];
y+=dy[d];
if(a[x][y]=='R')
{
hp=max(hp-10,0);
}
if(a[x][y]=='Q')
{
st+=5;
}
if(a[x][y]=='Y')
{
de+=5;
}
if(a[x][y]=='M')
{
int tmp=ceil(hp*1.0/(max(1,st-de0)*1.0));
hp+=max(1,tmp*max(1,st0-de));
}
}
}
}