답안 #225789

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
225789 2020-04-21T16:19:30 Z osaaateiasavtnl Kralj (COCI16_kralj) C++14
56 / 140
2000 ms 68812 KB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair <int, int>
#define app push_back
#define all(a) a.begin(), a.end()
#define bp __builtin_popcount
#define ll long long
#define mp make_pair
#define f first
#define s second
#define Time (double)clock()/CLOCKS_PER_SEC

const int N = 5e5 + 7;
int a[N], p1[N], p2[N];
vector <int> add[N];

signed main() {
    #ifdef HOME
    freopen("input.txt", "r", stdin);
    #else
    #define endl '\n'
    ios_base::sync_with_stdio(0); cin.tie(0);
    #endif
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
    }   
    for (int i = 1; i <= n; ++i)
        cin >> p1[i];
    for (int i = 1; i <= n; ++i) {
        cin >> p2[i];
        add[a[i]].app(p2[i]);
    }                

    int ans = 0;
    for (int s = 1; s <= n; ++s) {
        set <int> cur;
        priority_queue <ii> q;
        bool ban = 0;
        int nn = 0;
        for (int sh = 0; sh < n; ++sh) {
            int i = s + sh;
            if (i > n)
                i -= n;
            for (int x : add[i]) {
                q.push(mp(sh, x));
            }   
            if (cur.empty() && q.size()) {
                int r = q.top().f;
                while (q.size() && q.top().f == r) {
                    cur.insert(q.top().s);
                    q.pop();
                }   
            }   
            if (cur.empty()) {
                ban = 1;
                break;
            }   
            auto t = cur.upper_bound(p1[i]);
            if (t == cur.end()) {
                cur.erase(cur.begin());
            }   
            else {
                ++nn;
                cur.erase(t);
            }   
        }
        if (!ban) {
            ans = max(ans, nn);
        }   
    }   
    cout << ans << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 597 ms 58320 KB Output is correct
2 Correct 381 ms 56908 KB Output is correct
3 Correct 467 ms 67792 KB Output is correct
4 Correct 481 ms 68812 KB Output is correct
5 Execution timed out 2100 ms 40956 KB Time limit exceeded
6 Execution timed out 2100 ms 40184 KB Time limit exceeded
7 Execution timed out 2093 ms 43512 KB Time limit exceeded
8 Execution timed out 2101 ms 40572 KB Time limit exceeded
9 Execution timed out 2090 ms 45308 KB Time limit exceeded
10 Execution timed out 2088 ms 42744 KB Time limit exceeded