Submission #65693191


Source Code Expand

Copy
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#include <numeric>
#include <iomanip>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ll,int> pli;
typedef pair<int,ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#include <numeric>
#include <iomanip>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ll,int> pli;
typedef pair<int,ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
const vector<char> alpha = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
const ll INF = 1e9+7;
const ll MOD = 998244353;
template <typename T> bool chmax(T &a, T b) {if (a < b) {a = b;return true;}return false;}
template <typename T> bool chmin(T &a, T b) {if (a > b) {a = b;return true;}return false;}
using namespace std;
typedef pair<int,int> pii;


struct BIT {
    int n;
    vector<int> t;
    BIT(int _n): n(_n), t(n+1,0) {}
    void add(int i, int v=1) { for(; i<=n; i+=i&-i) t[i]+=v; }
    int sum(int i) const { int s=0; for(; i>0; i-=i&-i) s+=t[i]; return s; }
};

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, M;
    cin >> N >> M;
    int maxP = 2*N;
    vector<pair<int,int>> chords(M);
    vector<int> endpoints_cnt(maxP+2, 0), Bi_cnt(maxP+2, 0);
    for(int i=0;i<M;i++){
        int A, B;
        cin >> A >> B;
        chords[i] = {A, B};
        endpoints_cnt[A]++;
        endpoints_cnt[B]++;
        Bi_cnt[B]++;
    }
    vector<int> endpoints_ps(maxP+2,0), Bi_ps(maxP+2,0);
    for(int i=1;i<=maxP;i++){
        endpoints_ps[i] = endpoints_ps[i-1] + endpoints_cnt[i];
        Bi_ps[i] = Bi_ps[i-1] + Bi_cnt[i];
    }

    int Q;
    cin >> Q;
    struct Query{int C,D,idx,tot;};
    vector<Query> qs(Q);
    for(int i=0;i<Q;i++){
        int C,D;
        cin >> C >> D;
        qs[i] = {C, D, i, endpoints_ps[D-1] - endpoints_ps[C]};
    }

    sort(chords.begin(), chords.end(), [](auto &a, auto &b){
        return a.first < b.first;
    });
    vector<int> order(Q);
    iota(order.begin(), order.end(), 0);
    sort(order.begin(), order.end(), [&](int i, int j){
        return qs[i].C < qs[j].C;
    });

    BIT bit(maxP+1);
    vector<int> ans(Q);
    int p = 0;
    for(int oi=0; oi<Q; oi++){
        int qi = order[oi];
        int C = qs[qi].C;
        int D = qs[qi].D;
        while(p < M && chords[p].first <= C){
            bit.add(chords[p].second, 1);
            p++;
        }
        int f = bit.sum(D-1);
        int inside = Bi_ps[D-1] - f;
        ans[qs[qi].idx] = qs[qi].tot - 2*inside;
    }

    for(int i=0;i<Q;i++){
        cout << ans[i] << endl;
    }
}

Submission Info

Submission Time
Task F - Chord Crossing
User una_o0
Language C++ 17 (gcc 12.2)
Score 525
Code Size 2958 Byte
Status AC
Exec Time 347 ms
Memory 48548 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 525 / 525
Status
AC × 2
AC × 40
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 02_large_05.txt, 02_large_06.txt, 02_large_07.txt, 02_large_08.txt, 02_large_09.txt, 02_large_10.txt, 02_large_11.txt, 02_large_12.txt, 02_large_13.txt, 02_large_14.txt, 02_large_15.txt, 02_large_16.txt, 02_large_17.txt, 02_large_18.txt, 02_large_19.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt, 03_handmade_06.txt, 03_handmade_07.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3488 KiB
00_sample_01.txt AC 1 ms 3444 KiB
01_small_00.txt AC 213 ms 7744 KiB
01_small_01.txt AC 213 ms 7728 KiB
01_small_02.txt AC 214 ms 7736 KiB
01_small_03.txt AC 214 ms 7732 KiB
01_small_04.txt AC 212 ms 7760 KiB
01_small_05.txt AC 213 ms 7808 KiB
01_small_06.txt AC 213 ms 7764 KiB
01_small_07.txt AC 213 ms 7756 KiB
01_small_08.txt AC 214 ms 7756 KiB
01_small_09.txt AC 213 ms 7728 KiB
02_large_00.txt AC 294 ms 44448 KiB
02_large_01.txt AC 321 ms 47420 KiB
02_large_02.txt AC 298 ms 46020 KiB
02_large_03.txt AC 316 ms 45248 KiB
02_large_04.txt AC 318 ms 47652 KiB
02_large_05.txt AC 305 ms 47356 KiB
02_large_06.txt AC 283 ms 46824 KiB
02_large_07.txt AC 314 ms 44700 KiB
02_large_08.txt AC 282 ms 43704 KiB
02_large_09.txt AC 326 ms 48124 KiB
02_large_10.txt AC 336 ms 48460 KiB
02_large_11.txt AC 336 ms 48420 KiB
02_large_12.txt AC 340 ms 48448 KiB
02_large_13.txt AC 330 ms 48480 KiB
02_large_14.txt AC 330 ms 48464 KiB
02_large_15.txt AC 345 ms 48476 KiB
02_large_16.txt AC 347 ms 48396 KiB
02_large_17.txt AC 335 ms 48408 KiB
02_large_18.txt AC 336 ms 48428 KiB
02_large_19.txt AC 329 ms 48548 KiB
03_handmade_00.txt AC 1 ms 3440 KiB
03_handmade_01.txt AC 325 ms 48492 KiB
03_handmade_02.txt AC 291 ms 48424 KiB
03_handmade_03.txt AC 307 ms 48548 KiB
03_handmade_04.txt AC 297 ms 48496 KiB
03_handmade_05.txt AC 307 ms 48388 KiB
03_handmade_06.txt AC 291 ms 48388 KiB
03_handmade_07.txt AC 330 ms 48456 KiB


2025-06-06 (Fri)
18:37:20 +09:00