为什么会RE?能帮助我吗?
查看原帖
为什么会RE?能帮助我吗?
817415
maotianqi0510楼主2023/6/17 16:24
#include<bits/stdc++.h>
using namespace std;
stack <int> z;
int a,b,c,m=-1000,d[200005],f[200005],e=1;//各有用处:a是操作个数,b是操作类型,c对应x,m是当前查询最大值,d是栈中的所有数,f是要输出的东西,e是f的存储下标
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b;
		if(b==0)
		{
			cin>>c;
			z.push(c);//装入
		}
		if(b==1)
		{
			z.pop();//取出
		}
		if(b==2)
		{
			if(z.empty()==true)
			{
				f[e]==0;//判空(e是几存的就是第几次查询)
			}
			else//我的查询方法就是挨个的看栈的顶元素,看完pop掉,再靠d数组存回来
			{
				for(int j=0;j<z.size();j++)
				{
					d[z.size()-j]==z.top();
					if(z.top()>m)
					{
						m=z.top();
					}
					z.pop();
				}
				f[e]=m;
				for(int j=1;j<=z.size();j++)
				{
					z.push(d[j]);
				}
				m=-1000;
			}
			e++;
		}
	}
	for(int i=i;i<=e;i++)
	{
		cout<<f[i]<<endl; //结束
	}
	return 0;
}

#include<bits/stdc++.h> using namespace std; stack z; int a,b,c,m=-1000,d[200005],f[200005],e=1;//各有用处:a是操作个数,b是操作类型,c对应x,m是当前查询最大值,d是栈中的所有数,f是要输出的东西,e是f的存储下标 int main() { cin>>a; for(int i=1;i<=a;i++) { cin>>b; if(b==0) { cin>>c; z.push(c);//装入 } if(b==1) { z.pop();//取出 } if(b==2) { if(z.empty()==true) { f[e]==0;//判空(e是几存的就是第几次查询) } else//我的查询方法就是挨个的看栈的顶元素,看完pop掉,再靠d数组存回来 { for(int j=0;j<z.size();j++) { d[z.size()-j]==z.top(); if(z.top()>m) { m=z.top(); } z.pop(); } f[e]=m; for(int j=1;j<=z.size();j++) { z.push(d[j]); } m=-1000; } e++; } } for(int i=i;i<=e;i++) { cout<<f[i]<<endl; //结束 } return 0; }

2023/6/17 16:24
加载中...