30pts
查看原帖
30pts
1095806
Supa7onyz楼主2024/10/9 21:38
#include <iostream>
#include <queue>
using namespace std;
struct node{
    int num;
    bool f,vis=0;
};
int main()
{
    int n;
    cin>>n;
    node a[n+10];
    for (int i=1;i<=n;i++){
        cin>>a[i].f;
        a[i].num=i;
    }
    queue <int>ans[n+1];
    ans[1].push(1);
    a[1].vis=1;
    int cnt=1;
    for (int i=2;i<=n;i++){
        a[i].vis=1;
        int last=i-1;
        for (;!a[last].vis;last--){}
        if(a[last].f==a[i].f){
            cnt++;
        }else{
            cnt=1;
        }
        ans[cnt].push(a[i].num);
    }
    for (int i=1;i<=n;i++){
        while (!ans[i].empty()){
            cout<<ans[i].front()<<" ";
            ans[i].pop();
        }
        cout<<endl;
    }
    return 0;
}
2024/10/9 21:38
加载中...