답안 #815820

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
815820 2023-08-09T00:33:44 Z exodus_ Ekoeko (COCI21_ekoeko) C++14
20 / 110
46 ms 4484 KB
#include<bits/stdc++.h>
#define eb emplace_back
using namespace std;
const int N = 2e5+5;
int frek[30]={0};
vector<char>kmpl;
deque<int>indeks[30];
vector<int>ssn;
int segtree[4*N]={0};
void barui(int idx, int low, int high, int value) {
    if(low==high && low==value) {
        segtree[idx]=1;
        return;
    }
    if(value<low || value>high) return;
    int mid = (low+high)/2;
    barui(2*idx,low,mid,value);
    barui(2*idx+1,mid+1,high,value);
    segtree[idx] = segtree[2*idx]+segtree[2*idx+1];
}
int carinya(int idx, int low, int high, int l, int r) {
    if(low>=l && high<=r) {
        return segtree[idx];
    }
    if(low>r || high<l) return 0;
    int mid = (low+high)/2;
    int left = carinya(2*idx,low,mid,l,r);
    int right = carinya(2*idx+1,mid+1,high,l,r);
    return left+right;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    n*=2;
    string umum;
    cin >> umum;
    for(int i=0; i<n; i++) frek[umum[i]-97]++;
    for(int i=0; i<n; i++) {
        if(frek[umum[i]-97]>0) {
            kmpl.eb(umum[i]);
            frek[umum[i]-97]-=2;
        }
    }
    int sk=kmpl.size();
    for(int i=0; i<sk; i++) kmpl.eb(kmpl[i]);
    for(int i=0; i<n; i++) indeks[kmpl[i]-97].eb(i);
    for(int i=0; i<n; i++) {
        ssn.eb(indeks[umum[i]-97].front());
        indeks[umum[i]-97].pop_front();
    }
    int jwb=0;
    for(int i=0; i<n; i++) {
        jwb+=carinya(1,0,n-1,ssn[i]+1,n-1);
        barui(1,0,n-1,ssn[i]);
    }
    cout << jwb << endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 16 ms 2124 KB Output is correct
3 Correct 31 ms 3884 KB Output is correct
4 Incorrect 46 ms 4484 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 16 ms 2124 KB Output is correct
3 Correct 31 ms 3884 KB Output is correct
4 Incorrect 46 ms 4484 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 16 ms 2124 KB Output is correct
3 Correct 31 ms 3884 KB Output is correct
4 Incorrect 46 ms 4484 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 340 KB Output is correct
2 Correct 16 ms 2124 KB Output is correct
3 Correct 31 ms 3884 KB Output is correct
4 Incorrect 46 ms 4484 KB Output isn't correct
5 Halted 0 ms 0 KB -