169322025-05-15 20:05:59UVinceZárójelekcpp17Elfogadva 100/10023ms1436 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

struct sor{
    int mn;
    int sum;
    int idx;
    sor(int x,int y,int z){
        mn=x;
        sum=y;
        idx=z;
    }
    bool operator< (const sor &c) const {
        return mn < c.mn;
    }
};

int main(){
    int n;
    cin>>n;
    vector<sor> add, sub;
    for (int i=1;i<=n;i++){
        string s;
        cin>>s;
        int sum=0;
        int mn=1e6;
        for (char c : s){
            if (c=='(') sum++;
            else sum--;
            mn=min(mn, sum);
        }
        if (sum>=0) add.push_back(sor(mn, sum, i));
        else {
            int sum2=0;
            int mn2=1e6;
            for (int j=(int)s.size()-1;j>=0;--j){
                if (s[j]==')') sum2++;
                else sum2--;
                mn2=min(mn2, sum2);
            }
            sub.push_back(sor(mn2, sum2, i));
        }
    }
    sort(add.rbegin(), add.rend());
    sort(sub.rbegin(), sub.rend());
    vector<int> ans, ans2;
    int total=0;
    bool pos=true;

    for (auto i : add){
        if (total+i.mn<0) {
            pos=false; break;
        }
        ans.push_back(i.idx);
        total+=i.sum;
    }
    int total2=0;
    for (auto i : sub){
        if (total2+i.mn<0) {
            pos=false; break;
        }
        ans2.push_back(i.idx);
        total2+=i.sum;
    }

    if (!pos || total-total2!=0){
        cout<<-1;
        return 0;
    }

    for (int i : ans) cout<<i<<" ";
    reverse(ans2.begin(), ans2.end());
    for (int i : ans2) cout<<i<<" ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva8ms316 KiB
subtask211/11
3Elfogadva1ms500 KiB
4Elfogadva1ms556 KiB
5Elfogadva1ms508 KiB
6Elfogadva1ms316 KiB
7Elfogadva6ms404 KiB
8Elfogadva7ms564 KiB
subtask36/6
9Elfogadva7ms500 KiB
10Elfogadva6ms316 KiB
11Elfogadva6ms512 KiB
subtask414/14
12Elfogadva6ms408 KiB
13Elfogadva6ms316 KiB
subtask523/23
14Elfogadva6ms316 KiB
15Elfogadva6ms364 KiB
subtask619/19
16Elfogadva6ms508 KiB
17Elfogadva7ms544 KiB
18Elfogadva7ms512 KiB
19Elfogadva6ms316 KiB
20Elfogadva6ms564 KiB
21Elfogadva4ms368 KiB
22Elfogadva4ms500 KiB
23Elfogadva4ms316 KiB
24Elfogadva4ms316 KiB
subtask727/27
25Elfogadva7ms508 KiB
26Elfogadva8ms316 KiB
27Elfogadva8ms508 KiB
28Elfogadva8ms592 KiB
29Elfogadva10ms608 KiB
30Elfogadva23ms1436 KiB
31Elfogadva7ms400 KiB
32Elfogadva8ms524 KiB
33Elfogadva7ms316 KiB
34Elfogadva8ms556 KiB
35Elfogadva6ms316 KiB
36Elfogadva8ms564 KiB
37Elfogadva6ms316 KiB
38Elfogadva6ms432 KiB
39Elfogadva13ms820 KiB
40Elfogadva4ms316 KiB
41Elfogadva2ms500 KiB
42Elfogadva6ms636 KiB
43Elfogadva4ms444 KiB