답안 #894497

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
894497 2023-12-28T11:16:34 Z vjudge1 Index (COCI21_index) C++17
60 / 110
2500 ms 7620 KB
#include <bits/stdc++.h>
using namespace std;
 
#define speed ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define rall(x) x.rbegin(), x.rend()
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define nl '\n'
//#define int long long
 
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef long double ld;
 
const int N = 2e5 + 5;
const int M = 1e3 + 5;
const int inf = 1e9 + 123;
const ll infl = 1e15 + 10;
const int mod = 1e9 + 7;
const int P = 31;
 
int n, q, MX, a[N], t[N], ans[N];
 
struct query{
    int l, r, id;
};
 
vector <query> qs;
 
int sum (int r) {
    int res = 0;
    for (; r > 0; r -= r & -r)
        res += t[r];
    return res;
}
 
int sum (int l, int r) {
    return sum(r) - sum(l-1);
}
 
void add (int k, int x) {
    for (; k <= n; k += k & -k)
        t[k] += x;
}
 
void add(int x){
    add(x, 1);
}
 
void del(int x){
    add(x, -1);
}
 
void solve() {
    cin >> n >> q;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    for(int i = 1; i <= q; i++){
        int l, r;
        cin >> l >> r;
        qs.pb({l, r, i});
        MX = max(MX, r);
    }
    sort(all(qs), [](query a, query b){
        return a.r < b.r;
    });
 
    int l = 1, r = 0;
    for(auto Q : qs){
        while (r < Q.r)
            add(a[++r]);
        while (l < Q.l)
            del(a[l++]);
        while (l > Q.l)
            add(a[--l]);
        int l = 1, r = n + 1, mid;
        while(r - l > 1){
            mid = (l + r) >> 1;
            if(sum(mid, MX) >= mid)
                l = mid; 
            else
                r = mid;
        }
        ans[Q.id] = l;
    }
    for(int i = 1; i <= q; i++)
        cout << ans[i] << nl;
}
 
signed main() { 
    speed;
    int T = 1;
    // cin >> T;
    while (T--)
        solve();
}
 
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2516 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2516 KB Output is correct
10 Correct 1 ms 2396 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2516 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2516 KB Output is correct
10 Correct 1 ms 2396 KB Output is correct
11 Correct 1241 ms 4424 KB Output is correct
12 Correct 1283 ms 4424 KB Output is correct
13 Correct 1284 ms 4416 KB Output is correct
14 Correct 1280 ms 4424 KB Output is correct
15 Correct 1246 ms 4568 KB Output is correct
16 Correct 1251 ms 4416 KB Output is correct
17 Correct 1251 ms 4436 KB Output is correct
18 Correct 1250 ms 4416 KB Output is correct
19 Correct 1260 ms 4416 KB Output is correct
20 Correct 1237 ms 4432 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Correct 1 ms 2516 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 1 ms 2396 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2516 KB Output is correct
10 Correct 1 ms 2396 KB Output is correct
11 Correct 1241 ms 4424 KB Output is correct
12 Correct 1283 ms 4424 KB Output is correct
13 Correct 1284 ms 4416 KB Output is correct
14 Correct 1280 ms 4424 KB Output is correct
15 Correct 1246 ms 4568 KB Output is correct
16 Correct 1251 ms 4416 KB Output is correct
17 Correct 1251 ms 4436 KB Output is correct
18 Correct 1250 ms 4416 KB Output is correct
19 Correct 1260 ms 4416 KB Output is correct
20 Correct 1237 ms 4432 KB Output is correct
21 Execution timed out 2531 ms 7620 KB Time limit exceeded
22 Halted 0 ms 0 KB -