为什么没法输入啊?

B3614 【模板】栈

songpeiqian @ 2024-09-28 13:22:43

为什么没法输入啊?

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int N=1000001;
struct Stack{
    int top;
    ULL data[N];
};
bool Is_Empty(Stack &s){
    if(s.top==0) return 1;
    return 0;
}
void Push(Stack &s,ULL tmp){
    s.top++;
    s.data[s.top]=tmp;
}
void Pop(Stack &s){
    if(Is_Empty(s)){
        cout<<"Empty\n";
        return;
    }
    s.top--;
}
void Top(Stack &s){
    if(Is_Empty(s)){
        cout<<"Anguei!\n";
        return;
    }
    cout<<s.data[s.top]<<endl;
}
void Size(Stack &s){
    cout<<s.top<<endl;
}
int t,n;
ULL tmp;
string str;
int main(){
    ios::sync_with_stdio(false);
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>n;
        Stack s;
        for(int j=1;j<=n;j++){
            cin>>str;
            if(str=="push"){
                cin>>tmp;
                Push(s,tmp);
            }else if(str=="pop"){
                Pop(s);
            }else if(str=="query"){
                Top(s);
            }else if(str=="size"){
                Size(s);
            }
        }
    }
    return 0;
}

by XuYueming @ 2024-09-28 13:33:30

@songpeiqian 1000001unsigned long long 你是真敢开啊


by masonxiong @ 2024-09-28 13:41:46

@songpeiqian 怎么不能输入了。。。洛谷 IDE 上测的完全没有问题。


by masonxiong @ 2024-09-28 13:42:44

@XuYueming

您要不仔细算算?


by XuYueming @ 2024-09-28 13:49:30

@masonxiong 放主函数啊


by masonxiong @ 2024-09-28 13:57:46

@XuYueming

首先,任何评测平台都默认无限栈空间。

其次,您不知道楼主有没有开栈空间限制,所以您最好不要直接下结论。


by XuYueming @ 2024-09-28 14:46:32

@masonxiong 他本地不能输入,不就是这个问题吗?其次,任何评测平台是否过于绝对了呢?


by songpeiqian @ 2024-09-30 19:53:51

@masonxiong @XuYueming 听不懂啊,什么意思?


by songpeiqian @ 2024-09-30 19:57:15

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long int ULL;
int t,n;
ULL x;
stack<ULL>s;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>n;
        for(int j=1;j<=n;j++){
            string str="";
            cin>>str;
            if(str=="push"){
                cin>>x;
                s.push(x);
            }else if(str=="pop"){
                if(s.empty()) cout<<"Empty\n";
                else s.pop();
            }else if(str=="query"){
                if(s.empty()) cout<<"Anguei!\n";
                else cout<<s.top()<<endl;
            }else{
                cout<<s.size()<<endl;
            }
        }
        while(!s.empty()) s.pop();
    }
    return 0;
}

用STL为什么就没问题


by yueyi2012666 @ 2024-10-01 11:42:53

@songpeiqian,你的那个const int n=1000001, n开的太大了,改小一点儿就成了


|