Submission #1026923

# Submission time Handle Problem Language Result Execution time Memory
1026923 2024-07-18T13:59:50 Z shidou26 Pairs (IOI07_pairs) C++14
100 / 100
489 ms 503540 KB
#include <bits/stdc++.h>
using namespace std;

#define endl '\n'
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(v) v.begin(), v.end()
#define put(b) return void(cout << b << endl);

typedef long long ll;
typedef long double ld;
typedef pair<int, int> ii;

template<typename T> bool minimize(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }else {
        return false;
    }
}

template<typename T> bool maximize(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }else {
        return false;
    }
}

ll add(ll x, ll y, ll mod) {return ((x % mod) + (y % mod)) % mod;}
ll sub(ll x, ll y, ll mod) {return ((x - y) % mod + mod) % mod;}
ll mul(ll x, ll y, ll mod) {return ((x % mod) * (y % mod)) % mod;}


int type, n, d, m;

void prepare() {

}

void input() {
    cin >> type >> n >> d >> m;
}

namespace subtask_1 {
    const int N = 1e6 + 12;

    int cord[N];
    ll ans = 0;

    void solve() {
        for(int i = 1; i <= n; i++) cin >> cord[i];

        sort(cord + 1, cord + 1 + n);

        for(int i = 1, j = 1; i <= n; i++) {
            while(j <= i && cord[i] - cord[j] > d) j++;
            ans += i - j;
        }

        cout << ans << endl;
    }
}

namespace subtask_2 {
    const int N = 1e6 + 12;

    ll bit[N];
    ii cord[N];
    vector<int> cps;

    void compress() {
        sort(all(cps)); cps.resize(unique(all(cps)) - cps.begin());
    }

    int get(int value) {
        return (lower_bound(all(cps), value) - cps.begin() + 1);
    }

    void update(int pos, int value) {
        for(; pos < N; pos += pos & -pos) bit[pos] += value;
    }

    ll query(int pos) {
        ll ans = 0;
        for(; pos > 0; pos -= pos & -pos) ans += bit[pos];
        return ans;
    }

    ll range(int l, int r) {
        if(l > r) return 0;
        return query(r) - query(l - 1);
    }

    ll p(int a) {
        return cord[a].fi + cord[a].se;
    }

    ll g(int a) {
        return cord[a].fi - cord[a].se;
    }

    bool cmp(ii a, ii b) {
        return a.fi + a.se < b.fi + b.se;
    }

    void solve() {
        for(int i = 1; i <= n; i++) {
            cin >> cord[i].fi >> cord[i].se;
            cps.pb(g(i));
            cps.pb(g(i) - d);
            cps.pb(g(i) + d);
        }

        compress();
        sort(cord + 1, cord + 1 + n, cmp);

        // for(int i = 1; i <= n; i++) cout << cord[i].fi << " " << cord[i].se << endl;

        ll ans = 0;
        for(int i = 1, j = 1; i <= n; i++) {    
            while(j < i && p(i) > p(j) + d) update(get(g(j++)), -1);
            ans += range(get(g(i) - d), get(g(i) + d)); 
            update(get(g(i)), 1);
        }
        cout << ans << endl;
    }
}

namespace subtask_3 {
    const int N = 1e5 + 12;

    tuple<int, int, int> cord[N];
    vector<int> cps[3];
    vector<vector<vector<int>>> bit;

    int p(int type, int pos) {
        int a, b, c; tie(a, b, c) = cord[pos];
        if(type == 2) c *= -1;
        else if(type == 3) b *= -1;
        else if(type == 4) c *= -1, b *= -1;
        return a + b + c;
    }

    int g(int type, int a, int b, int c) {
        if(type == 2) c *= -1;
        else if(type == 3) b *= -1;
        else if(type == 4) c *= -1, b *= -1;
        return a + b + c;
    }

    bool cmp(tuple<int, int, int> a, tuple<int, int, int> b) {
        int d, e, f; tie(d, e, f) = a; 
        int x, y, z; tie(x, y, z) = b;
        return g(1, d, e, f) < g(1, x, y, z);
    }

    void update(int x, int y, int z, int value) {
         x += 226; y += 226; z += 226;

         minimize(x, 451); minimize(y, 451); minimize(z, 451);

       //  cout << x << " " << y << " " << z << endl;
        for(; x <= 450; x += x & -x) {
            for(int i = y; i <= 450; i += i & -i) {
                for(int j = z; j <= 450; j += j & -j) {
                    bit[x][i][j] += value;
                }
            }
        }
    }

    int query(int x, int y, int z) {
        x += 226; y += 226; z += 226;

        minimize(x, 451); minimize(y, 451); minimize(z, 451);

        int ans = 0;
        for(; x > 0; x -= x & -x) {
            for(int i = y; i > 0; i -= i & -i) {
                for(int j = z; j > 0; j -= j & -j) {
                    ans += bit[x][i][j];
                }
            }
        }
        return ans;
    }

    int range(int a, int b, int c, int x, int y, int z) {
        return query(x, y, z) - query(a - 1, y, z) - query(x, b - 1, z) - query(x, y, c - 1) + query(a - 1, b - 1, z) + query(a - 1, y, c - 1) + query(x, b - 1, c - 1) - query(a - 1, b - 1, c - 1);
    }

    void solve() {
        for(int i = 1; i <= n; i++) {
            int a, b, c; cin >> a >> b >> c;
            cord[i] = make_tuple(a, b, c);
        }
        
        bit = vector<vector<vector<int>>>(500, vector<vector<int>>(500, vector<int>(500, 0)));
        sort(cord + 1, cord + 1 + n, cmp);
        
        ll ans = 0;
        for(int i = 1, j = 1; i <= n; i++) {
            int a, b, c; tie(a, b, c) = cord[i];
            while(j < i && p(1, i) > p(1, j) + d) {
                update(p(2, j), p(3, j), p(4, j), -1);
                j++;
            }
            ans += range(p(2, i) - d, p(3, i) - d, p(4, i) - d, p(2, i) + d, p(3, i) + d, p(4, i) + d);
            update( p(2, i), p(3, i), p(4, i), 1);
        }

        cout << ans << endl;
    }
}

void process() {
    if(type == 1) {
        subtask_1::solve();
        return;
    }

    if(type == 2) {
        subtask_2::solve();
        return;
    }

    subtask_3::solve();
}

int32_t main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    #define task "Date_A_Live"
    if(fopen(task".inp", "r")) {
        freopen(task".inp", "r", stdin);
        freopen(task".out", "w", stdout);
    }
    
    prepare();
    
    int tc = 1; // cin >> tc;
    
    for(int i = 1; i <= tc; i++) {
        input();
        process();
    }

    cerr << "Saa, watashtachi no deito hajimemashou" << endl;

    return 0;
}

/*
B####BGGGGP7^^:::::^!J555PPPPPPPGGGGGB###BGGGGGBBGGBGGGGPPPPPPGGGBGGPPPPPPPPPPPPPPPPPPPPP555555555555555555555555YYJ!:...      :!~~77!~~7??JJ?!~!?JYYJ
BBB###BGGGP5~:^^:^~J555PPPPPPPGGGGGB####BGGGGGGBBGGGGGGGGGGGGGGGBBGPPPPPPPPPPPPPPPPPPPPPPPPPPPPP5555555PPPP55555555YYJ~...     .~!~!77~~7JJJJ?!~!?JYYY
BBBBB#BGGGPP!:^:^?5PPPPPPPPPGGGGGB#####BGGGGGGBBGGGGGGGGGGGGGGGB##GGGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP5555555YY?^.     .~!~!77~~7JJJJ?!~!?YYYY
BBBBBBGGGGGJ^^^!YPPPPPPPGGGGGGGGB#####BGGGGGGB#BBBGGGGGGGGGGGGGBB#GGGGGGGGGPPPPPPPPPPGGPPPPPPPPPPPPPPPPPPPPPPPPPPP5555Y5Y!.     ^!~!77!~!?JJJ?7!!?YYYY
BBBBBBBGGGJ~:^7PPPPGPGGGGGGGGGB###B##GGGBBGBBB#BBBGGGGGGGGGGGGBBB#BGGGGGGGGGGPPPPPPGGGGGGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP55YJ:    :~!!777~!?JJJJ7!!?YYYY
BBBBBBBGGY~:^JGPGGGGGGGGGGGGBB###BB#BGGGGGBGB##BBBGGGGGGGGGGGBBGB#BGGGGGGBGGGGGGGGGGGGGGGGGPPPPPPPGGGGGPPPPPPPGGPPPPPPPPP55Y~   .~!!777!!7JJJJ?!!?Y5YY
BBBBBBBBP!^^YGGGGGGGGGGGGGGGB##BB#BBBBBBBBBBB##BBBBBGGGGGGGGB#BGB#BGGGGGBBGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGPPPGGGGGGPPPPPPGPP55?. .^!!!77!!7JYJJ?!!?Y555
##BBBBGBY^~5GGGGGGGGGGGGBBBB##BBBBBBBBBBBBBB##BBBBBBGBBBBBGB#BGGB#BGGGGGBBGGGGGG5PGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGGGGPPGGGY5P5PY. ^!!!77!!7JYYJ?7!?Y555
##BBBBBG7~5GGGGGGGGGGBBBBB###BBBBBBBBBBBBBBB##BBBBBBBGBBBBGBBBGGBB#BGGGBB#BGGGGGYJPGGGGGGGGGGGGGGGGPYPGGBBGGGGGGGGGGGPGPGP?JPPP5^:!!!7?7!7JYYJ?7!?Y555
###BBBBP~5BGGGBBBBBBBBBGB###BBBBBBBBBBBBBBBB##BBBBBBBBBBBBBBBBGBGGBBBGGGG##GGGGYJ7JGGGGGGGGGGGGGGGGPJ75GBBGGGGGGGGGGGGGGGGG7JGPPP7~7!7?7!7?YYYJ?7?555P
####B#B?YBBBBBBBBBBBBBBBB#BBBBBBBBBBBBBBBBBBB#BBBGBBBBBBBBBBBBGBBGBBBBG5PB#BGGGPJJ7PGGGGGGGGGBGGGGGPPJ?PGBBBBPPGGGGBBGGPGGGG!?GPPPJ7777777?JYYJ?775P5P
######GYBBBBBBBBBBBBBBBB#BBBBBBBBBBBBBBBBBBBBBBBBBBBGGBBBBBBGGGGGGGBBGB5YB##GGGPPGYPGGGGGBBGGGGGGGGPPPJYGPB#BGYGGGBBBBGJ5GGGG~?GGGGY777?777JYYY?77Y5PP
#####BGBBBBBBBBBBBBBBBB#BBBBBBBBBBBBBBBBBBBBBBBBBBBBJ5BBBBBBGGPGGGGBBGGGGGB#BGGPPGPPPPGGPG#BGGGGGGGPPPPPGPG#BGGGGGBB#B57?PGBGG:JGGGGY77??77JYYYJ77Y5PP
#####BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBG?5GBBBBGGGYPGGGBBGGGGGB#BGPPPPPPPPGGPPB#BGGPPGGPPPPPPPPB#BGGGGGBB#GJ?5GBGG5:5GGGGJ7??77?JYYJ??JPPP
#######BBBBBBBBBBBBBBBBBBBBBBB##BBBBBBBBBBBBBBBBBBBG7YGGBBBBGGGGGGGGGBGGGGGB#GPPPPPP5PPGPPG###GPPPPGPPPPPPPPB#BGGGGBB##BPJGBBGBJ:PPPGP7???7?JYYJ??YPPP
######BBBBBBBBBBBBBBBBBBBBBB###BBBBBBBBBBBBBB#GGBBBB?JGBGG5YBGGGGGGGGGGPPPPPBBPP5555555PPPPB###BGP5PPPP55555G#BGGGGGB##BGGGBBBGB~~GYGB57??7?JYYY??YPPP
#######BBBBBBBBBBBBBBBBBBBB####BBBBBBBBBBBBBB#P5BBGB55GGGG5:YGPPPPPPPJ7P5P55G#G555555555PP5P###B#BPP55PP5555P#BGGGPGGB##GGGGBBBBG:JGGGG??J??JYYYJ?YPPP
########BBBBBBBBBBBBBBBBBBB####BBBBBBBBBBBBBB#BGBBBGGGGGGP5:.YP55555P7.755555GBP555555555P55G##PPGBBPP55PGP55B#BPPPPPG##BGBGBBBBB5.PGBBP?J??JY5YYJYPPP
########BBBBBBBBBBBBBBBBB#####BBYGBGBBBBBBBBBBBBBBBGGGGPPP5~..YP555557 .?YYY55BG555555555P55PB#GYY55PPP555GGGB##PPPPPPG&BGGGGBBBBB~~BBBBJJJ?JY55YJYPGP
#########BBBBBBBBBBBB#B#######BBJYB5PBBBBBBBBBGBGBBGGPPPP5P!. .Y5YYYY?  .?YY5Y5GG5Y55YYY55P55G#BY55YYY55555PG###GP55PPPBBGGGGBBBBBP:5BBBPJJJJY5P5Y5PGG
#########B###BB######BB########BJ?BYGBBBBBBBBBGGGGGGPPPP555?.  .?YYYYY   .JYY5Y5G555P5555Y5555GBP5YYYYYY555P5PGBBP55P5PPGPPPPGGBBBB!~BBBBJJJJY5P5Y5PGG
###############BB#BBBBB#########57PGBBBBBBBBBBGGGBGBPPPP555J.  .^5555P~::.:J5YYY5P555P55555P555BG5555YYYY5Y5555PGP5P55P5PGPPPPGBBBBP:PBBB5JJJY5PP55PGG
######################B####&##&#G?PBBBBBBBBBBBGGGBPYP5PP5555^^^^:^YYYY!    .?YYYY5P55PPYY555P55PB55P55YY555555555PPPPP555PP5PPGBBBBB~7BBBP???JYY555PPP
############&#B########BB#&&##&&BJGBBBBBBGGGGGGPGBY:5PGGPP55~     :JYJJ.    .7YJY55555Y~Y5YYPP55GG5P5555555555555555PP555PPP55PBBBBBY.GBBG77?JYY55PPGG
###########&&##########B##&&#&&&BGBBBBBBBGGPGGGGYY5.7GPG55YY7      .?YY~      !YYYY5555~.?5Y5PP55PPPP5555555555555555555555PP55BBBBBG:YBBB??JY55PPGGGB
###########&&##PB######BG##&#&&&BBBBBBBBBGGPPGGGY?Y  ?5PY5YYY.      .!YJ.      ^YYYY55Y5. !YY5P555P5P5P5555555555P5555555555PP5GBBBB#~7#BBJJY55PGGGBBB
B#####BG##&&#5GJB######BY##&#&&&#BBBBBBGBBGPPPGGJ~J  :55.J5Y5~      ..~5? ..    :?5YY5P5?  :JYYP5555PPPP555555555PBP55555555PPPG#BBB#Y7#B#PPPPPGBGBBB#
G######YG#&&BGPJB######GP##&&&&&&BGGGGGBB#BPPPPPJ.J   ^5: 7YYY. ....::.:J~.::    .!Y555?5!  .!Y5P5555PGP5555555555B#BP555555P5PG#BBBBB7BB#BPPPPGBBBBB#
G######B##&&##5Y###########&&&&&&BBGGGGGGB#G555GJ.7.   !? :YP5PGBBBBBGGPPPY!:      :?5Y:75:   :?55555PGP5555555555GBBBG55555PGPG###BB#JBB#BPPPPGBBGBB#
######B##&&&##GG###########&&&&&&BGGGGGGGB##P55PY.^: ..!BB#&#BB###BB##J::^!?Y7.      ^J7 ^J:    ^YPY55GG55555555555P5PGGP5555GGGGB####GBB#GPP5PGBBGBB#
#########&&&###############&&&&&&#GGGGGPGG##B555P:...!G############BBB#!     ..       .~. .~:     ~Y5YPG555555555555J55PGP555PGP#BB#######GP55PGBBGGB#
########&&&&################&&&&&&GPGPPPPG#&#B55P! :5#B##BB#PG#BGBBBBBBG                    .      :J55PP555P5555555!.GG55PP55PG######&###P5YYPGBGGGBB
########&&&&################&&&&&&GPPPPPPPB#&&B55J!B&B.G#B##BBG7^Y555PG#.                           .?55JJP5PY5P55555:P#GPP5555PB########B55YYPGGGPPBB
########&&&&#############B###&&&BY5PPPPPPPG####G5PJ~GB ~###BP5YJ77?JYY~^                              ~Y5^7557^YP5555JG#P55PPPP55PB######G5YJYPGGGPPGB
#####&##&&&&#############B#BB##G. !PPPPPPPP###PGP5Y..7~ 7GYPY5J777!7YPG:                               .7Y.:J5!.~Y555PB#P5555PPPGGPG#####P5YJYPGGGPPGB
#####&##&&&&###############BBB#! ^~55555PPPB##P5PP5J. ..  ~5PP5J??????:                                  :^  ~Y! .^?555#P5555J5P########G5YJJYPGGGPPGB
#######&&&&&################BGB~ .:J55555PPG##PP55PP?. .  ..^~^^:...                               .          .~^.  :7PPG55557JP#B######PYJJJYPGGG55GB
#######&&&#################BBBB!  .:555555PP##PP555!5J.  ..                                        .             .   :BGGP5G5!JP#B####B#PYJ?J5PGGP55PB
#####&#&&&#################BBBBP:  .P555555PB#GP55P^.?J. .                                                           7BB555G5!JG######B#GY??J5PGGP55PG
#######&&&########&##########BBBG^  75555555B#G555P~..!J:.                                                          .PBB555G57JG#####BB#GY??J5GGGPYY5G
#####&#&&&########&&#########BBB&#Y: 7P555PPG#B555P!.. :?~. .                                                       !BBB55PP5Y5G#####BBBBJ??J5PGGPYJYP
#####&#&@&########&&#######&#####&&#Y!P55PPPPBB555P?... .^!.                                                       :BBBB55PP555G#####BBBBJ7?J5GGGPYJYP
#######&&&########&&&######&#####&&&&&B5P555PB#PP55Y....  .^:                                       ..            ^GBB#GYYPP5P5G#&###BBBB?7?Y5GGGPYJYP
########&&####&###&@&######&#####&&&&&&P55PPPP#GPP5P~.      .:.                        ... .....   ..            ~B#B##G??PP5P5B#&###BBBG?7?YPGGGPYJYP
########&#########&&&&#####&&####&&&&&&G5PP5PPBGPPPP?~:.      .                                                .7######G??GP5PPB&&##GBBBG?7?YPGGGPYJY5
######B#&###BB#####&@&&####&&####&&&&&@BPP55PPGGPPPPY^~~:.                                                  . :5##&&###GY5BP5PP#&&#GGBBBP77?5GGGGPYJJ5
&#####BB&#B#BB#####&&&&####&&&###&&&@&&#P55PPPPGPPPPP!^^^~:...                                              .?###&&&&&#P5PBP5PP&&##PGBGG577?5GGGGPYJJ5
######BB&#BBBBBB###&&&@&###&@&###&&&&&&&P5PPPPPGPPPPG?^^^^^^^~^:.                                         .~G###&&&&&&#55G#PPPG&&#B5GGGGJ!7?5GGGGPYJJ5
#G#####B##BBBBBBB#&&&&@&&##&&&###&&&&&&&GPPPGPPPPPPPP5^^^^^^^^^~~~^...                                . .^5###&&&&&&&&#55#B5PP#&##55BGGG?!7J5GGGGPYJJ5
BBP####BBBBBBBBBBB#&&&&&@&&&&@&###&&&&&&GPPPBPPPPPPPYG!:^^^^^^^^^^~~~~^^:..                        ... :Y#&&&&&&&&&&&&B5G#BPPP&&#G5PGGGP7!7JPGGBGPYJJ5
B#5G&##BBBBBGGBBGBBB&@@&&&@@@&&###&&&&&&BPPG#PPPPPGPYGY^^^^^^^^^^^~^^^~~~~~~^^:...               .. .:JB##&&&&&&&&&&&&G5B#GPPG&BBP5PGPGY7!7JPGBBGPYJJY
PBBYB###BBBBGGGBGBGGB#&&&&&@&&&###&&&&&&BPPG#PPPPPGGPPP!^^^^^^^^^^^^^^~~^^^~~~~~~~~^^^::.:....    .:JB&#&&&&&&&&&&&&&#PP##PPP#BBG55GGGP?7!7JPGGBGPYJ?Y
~BBGJB##BBBBBGGGGGGGGGGB&&&&&&&&##&&&&&&#PPG#PPPPPPBGPP5^^^^^^^^^^^^^~~~~~~~~~~~~^^~~~~!PBBGP5YJJJ5#&&&&&&&&&&&&&&&&&BPB&#PPGGGGY55GPGY7!!7YGGGGGPYJ?Y
.!BBGJ##BGBBBGGGGGGGGGGGGB#&&@@&B#&&&&&&&PPP&GPPPPPGGPPG?^~~~~^^~^^~~~~~~~~~^^^^~^^~^^7B&#&&&&&&&&&&&&&&&&&&&&&&&&&&&GG#&BPPGGPJYYGPGPJ7!!7YPGGGG5Y??J
..!GBGJB#BGBBGBGGGGGGGGPGGPGB&&&B#&&&&&&&GGP&#PPPPPPGGPP5. ..:^~~~~~~~~~~~~^^^^^^^^~^?#&#&&&&&&&&&&&&&&&&&&&&&&&&&&&#PB&#GPPB57JPGGGPYJ7!!7YPGGGP5J??J
 . ^G#BYG#GGBBBBGGGGGGGGGGPGPGBBB#&&&&&&B!JP&#PPPPPP5^5PPJ       ..:^^~~!~~~~^^^^~^^!?YG#&&&&&&&&&&&&&&&&&&&&&&&&&&&GGB##GPGG7JG#BP55Y?!!!7YPGGGP5J?7?
....^PB#5PBGBBGB##GGGGGGGGGPPGGGGG######5~YG##GPPPPPP.:5PP!             .:^~!!!!~!~!?^~~!B&&&&&&&&&&&&&&&&&&&&&&&&&#GGG&#PP####BGP555J7!!!7YPPGGP5J?7?
~~~~~!5B#BBBGBBGGB##BGGGGGGGGPPPBJY55YP5JYBG##BPPPPPG: :5P5~                 .^^~~~~~~7?~!#&&&&&&&&&&&&&&&&&&&&&&&&BGPG#BGGGYJY555555J?!!!7YPPGGP5J?7?
!!7777!?P###BGBBGGGB###BBGGPPPGP5J777JG5?BBP###PPPP5G7. .YPP:                   ..:^^^^57!7&&&&&&&&&&&&&&&&&&&&&&&#GPPBBGG5?7?Y5PPPP5Y?7!!?YPPPGP5J?7?
JJJJJJJJJ5B#&BGBBBGGGGB####BBG?~:^~!!!~^!PPP###GPPPPP#B5~:?P5:                      .::Y77.Y##&&&&&&&&&&&&&&&&&B5BPGGGGGGP???J5PPPPP5Y?777?5PPPGP5YJ??
55555PP5PP55GBBGGGBBGGGGGGGB5~::~7?7!~:^^5GG##&BPPPPPG###BPGG5:                        ^7~^.BG5GBB&#&&BGBBBG5?!~JY5GPGGGB5JJJJY555555YJ???JY55555YJJJJ
JJJ????????????YGGGGBBBGGGGP^:^7?7!^^:^~~PGPB&&&GPPPPG&######G5!:                      :::!:^#P77?YYJ?77??7!^^!77JYGGGBGB5JJJJJJYYYYYYYYYYYYYYYYYYYYYY
YYYYYYYJJJJJJJJ?JYPGGGBBGGGY:^7J7^^^^JPB##GGB##&BPPPPG#########GG5!:.  .               .:.~#:!&B5YJ5J?77??7!^^^!P#BGPGBGBPY55555555555PPPPPPPPPPPPPPPP
YYYYYYYYYYJJJJJJJJJJYYY555557!YJ^^^^P#####BGB#&##GPPPPB#########B##G5!:.  ...          .7.^##5###BBGGBG5YJJJYPB&&#BGGBBGBP555555555PPPPPPPPPPPPPPPPPPP
55555YYYYYYJJJJJJJJJJJJJJ?JJYJPY!~~P&#####&BG###&BGPPPG###############B5!:............. ?BG##&P#&&&B#&&&&&&&&&&##&BGBBGBB55555555555555PPPPPPPPPPPPPPP
YYYYYYYYYYJJJJJJJJJJJJJJJJJJJYP5JJJ#&&&&####GB#&&#GGGPP###############BB#BY~............^~B###B#&&&B5&&&&&@&&&&###GB#BGBG?JJJJJJJJJJJJJJYYYYYYYYYYYYYY
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJYYYP&@@@&&&&&#BB&&##GGPPB#############BGP5G##GY~:.:......:?##&B~?###&&&&&&&&@&&&#&BB##GBB#5JJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJG@@@@@@@@@&&&BB#&#BGGGGB&&&&&&&#####BGGGP5G##BP7:.::::::G##G&P.~G###&&@&&&@@&&&&B#&#BB#&&GJ?JJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJB&&@@@@@@@@@@@&#BB#&BGGGG###&&&&&&&&#######B#####BJ~....:G##^G&J.:?G&##&&&&@@@&&##&&#BB#&&&GYJJJJJJJJJJJJJJJJJJJJJJJJJ
????????????????????????????J?JG&&&&&@@@@@@@@@@@&BB##GGGGB&&&&##&&&&&&&&############P?:.^###.~#&?.~~?#&#&&&&@@@&&&&&BB#&&&&BG5????????????????????????
??????????????????????????????P&&&&&&&&&&&&&&&&&&&&BBBGGBB&&&&&&&##&&&&&&&&#######&##&BJ7##5..5##7^7^^G&&&&&@@@&&&&&BB&&&B#&##5???????????????????????
*/

Compilation message

pairs.cpp: In function 'int32_t main()':
pairs.cpp:241:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  241 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
pairs.cpp:242:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  242 |         freopen(task".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4444 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 4700 KB Output is correct
2 Correct 9 ms 4956 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 5212 KB Output is correct
2 Correct 13 ms 5212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 16 ms 5212 KB Output is correct
2 Correct 13 ms 5212 KB Output is correct
3 Correct 11 ms 5452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 6492 KB Output is correct
2 Correct 1 ms 6620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 8532 KB Output is correct
2 Correct 34 ms 8392 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 51 ms 8660 KB Output is correct
2 Correct 50 ms 8700 KB Output is correct
3 Correct 46 ms 8652 KB Output is correct
4 Correct 47 ms 8648 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 78 ms 9928 KB Output is correct
2 Correct 78 ms 9836 KB Output is correct
3 Correct 53 ms 9164 KB Output is correct
4 Correct 53 ms 9160 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 180 ms 502356 KB Output is correct
2 Correct 206 ms 502520 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 303 ms 503124 KB Output is correct
2 Correct 275 ms 503124 KB Output is correct
3 Correct 244 ms 503124 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 318 ms 503380 KB Output is correct
2 Correct 373 ms 503380 KB Output is correct
3 Correct 393 ms 503516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 402 ms 503380 KB Output is correct
2 Correct 489 ms 503540 KB Output is correct
3 Correct 395 ms 503464 KB Output is correct