Submission #52600656


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
template<integral T,T Q=2>constexpr T inf=numeric_limits<T>::max()/Q-1;
template<class T,class S=T>inline bool umin(T&m,S&&x){return x<m?m=x,1:0;}
template<class T,class S=T>inline bool umax(T&m,S&&x){return m<x?m=x,1:0;}
auto&operator<<(ostream&o,ranges::range auto&&r)requires(!requires{string{r};}){int f=0,u=&o!=&cerr;o<<"["+u;for(auto&&x:r)(f++?o<<", "+u:o)<<x;return o<<"]"+u;}
auto&operator<<(ostream&o,auto&&t)requires requires{tuple_cat(t);}{int f=0,u=&o!=&cerr;o<<"<"+u;apply([&](auto&...x){(((f++?o<<", "+u:o)<<x),...);},t);return o<<">"+u;}
#ifdef BIZON
    #define rr(v...) [](auto&&...x){ cerr << boolalpha << #v << " "; int _=0; ((cerr<<",="[!_++]<<' '<<x),...)<<endl; }(v);
#else
    #define rr(...) ;
    #define endl '\n'
#endif
#define bb(c) begin(c), end(c)
#define ff(T, name, args...) function<T(args)> name = [&](args)->T
#define ee(e) [&](auto&&it) { return e; }
#define jj(v...) v; [](auto&...x){(cin>>...>>x);}(v);
#define ii(v...) int jj(v)
using ll = decltype(1LL);


void run_case(const size_t ____case) { // rr(____case)
    ii(n, qn)
    
    vector<unordered_set<int>> g(n);
    
    set<int> bigs;
    unordered_map<ll, int> ps;
    
    const int D = sqrt(n) * 0.75;
    
    int ans = 0, M = 998244353;
    while(qn--) {
        ll jj(a, b, c)
        int t = 1 + (((a * (1 + ans)) %M) %2);
        int u = 1 + (((b * (1 + ans)) %M) %n);
        int v = 1 + (((c * (1 + ans)) %M) %n);
        
        --u; --v;
        if(t == 1) {
            g[u].insert(v);
            g[v].insert(u);
            
            auto add = [&](int i, int j) {
                g[i].insert(j);
                if(size(g[i]) >= D) bigs.insert(i);
                else {
                    for(int p : g[i]) if(p != j) {
                        auto [x, y] = minmax(p, j);
                        ps[ll(x) * n + y] = i;
                    }
                }
            };
            
            add(u, v);
            add(v, u);
        } else {
            int res = 0;
            
            for(int x : bigs) {
                if(auto &s = g[x]; s.count(v) && s.count(u)) {
                    res = x + 1;
                    break;
                }
            }
            
            auto [x, y] = minmax(u, v);
            if(auto it = ps.find(ll(x)*n+y); it != end(ps)) {
                res = it->second + 1;
            }
            
            cout << res << endl;
            ans = res;
        }
    }
}

int main() {
    if(auto f="in.txt"; fopen(f,"r") && freopen(f,"r",stdin));
    cin.tie(0)->sync_with_stdio(0);
    
    size_t tn = 1; //cin>>tn;
    for(size_t t=1; t<=tn; ++t) run_case(t);
    
    return 0;
}

Submission Info

Submission Time
Task G - Mediator
User SabreTurbo
Language C++ 20 (gcc 12.2)
Score 600
Code Size 2792 Byte
Status AC
Exec Time 2563 ms
Memory 212776 KiB

Compile Error

Main.cpp: In lambda function:
Main.cpp:46:31: warning: comparison of integer expressions of different signedness: ‘std::unordered_set<int>::size_type’ {aka ‘long unsigned int’} and ‘const int’ [-Wsign-compare]
   46 |                 if(size(g[i]) >= D) bigs.insert(i);
      |                    ~~~~~~~~~~~^~~~
Main.cpp: In function ‘void run_case(size_t)’:
Main.cpp:22:28: warning: unused parameter ‘____case’ [-Wunused-parameter]
   22 | void run_case(const size_t ____case) { // rr(____case)
      |               ~~~~~~~~~~~~~^~~~~~~~
Main.cpp: In function ‘int main()’:
Main.cpp:79:62: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
   79 |     if(auto f="in.txt"; fopen(f,"r") && freopen(f,"r",stdin));
      |                                                              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 2
AC × 87
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt, test_62.txt, test_63.txt, test_64.txt, test_65.txt, test_66.txt, test_67.txt, test_68.txt, test_69.txt, test_70.txt, test_71.txt, test_72.txt, test_73.txt, test_74.txt, test_75.txt, test_76.txt, test_77.txt, test_78.txt, test_79.txt, test_80.txt, test_81.txt, test_82.txt, test_83.txt, test_84.txt, test_85.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 3512 KiB
sample_02.txt AC 1 ms 3472 KiB
test_01.txt AC 1 ms 3576 KiB
test_02.txt AC 1 ms 3468 KiB
test_03.txt AC 1 ms 3640 KiB
test_04.txt AC 39 ms 12340 KiB
test_05.txt AC 110 ms 31992 KiB
test_06.txt AC 55 ms 15812 KiB
test_07.txt AC 112 ms 30944 KiB
test_08.txt AC 26 ms 5468 KiB
test_09.txt AC 52 ms 15296 KiB
test_10.txt AC 99 ms 29088 KiB
test_11.txt AC 59 ms 17556 KiB
test_12.txt AC 30 ms 6464 KiB
test_13.txt AC 91 ms 26700 KiB
test_14.txt AC 57 ms 16816 KiB
test_15.txt AC 107 ms 31904 KiB
test_16.txt AC 62 ms 17596 KiB
test_17.txt AC 67 ms 20400 KiB
test_18.txt AC 32 ms 7252 KiB
test_19.txt AC 38 ms 9256 KiB
test_20.txt AC 32 ms 10748 KiB
test_21.txt AC 61 ms 17692 KiB
test_22.txt AC 30 ms 9492 KiB
test_23.txt AC 111 ms 31596 KiB
test_24.txt AC 42 ms 11704 KiB
test_25.txt AC 57 ms 16780 KiB
test_26.txt AC 66 ms 20180 KiB
test_27.txt AC 51 ms 15396 KiB
test_28.txt AC 34 ms 8192 KiB
test_29.txt AC 80 ms 25760 KiB
test_30.txt AC 95 ms 27508 KiB
test_31.txt AC 80 ms 24540 KiB
test_32.txt AC 53 ms 18052 KiB
test_33.txt AC 35 ms 9752 KiB
test_34.txt AC 69 ms 27684 KiB
test_35.txt AC 53 ms 18156 KiB
test_36.txt AC 46 ms 16632 KiB
test_37.txt AC 39 ms 12156 KiB
test_38.txt AC 32 ms 8412 KiB
test_39.txt AC 26 ms 4768 KiB
test_40.txt AC 62 ms 22356 KiB
test_41.txt AC 64 ms 22428 KiB
test_42.txt AC 79 ms 23660 KiB
test_43.txt AC 76 ms 23568 KiB
test_44.txt AC 79 ms 23784 KiB
test_45.txt AC 78 ms 24072 KiB
test_46.txt AC 87 ms 25472 KiB
test_47.txt AC 88 ms 25484 KiB
test_48.txt AC 93 ms 26296 KiB
test_49.txt AC 93 ms 26440 KiB
test_50.txt AC 112 ms 30108 KiB
test_51.txt AC 113 ms 30188 KiB
test_52.txt AC 1027 ms 108748 KiB
test_53.txt AC 1001 ms 108872 KiB
test_54.txt AC 2563 ms 212652 KiB
test_55.txt AC 2073 ms 212776 KiB
test_56.txt AC 93 ms 30364 KiB
test_57.txt AC 93 ms 30328 KiB
test_58.txt AC 93 ms 30240 KiB
test_59.txt AC 93 ms 30360 KiB
test_60.txt AC 48 ms 15884 KiB
test_61.txt AC 57 ms 19704 KiB
test_62.txt AC 60 ms 21692 KiB
test_63.txt AC 62 ms 22776 KiB
test_64.txt AC 48 ms 15832 KiB
test_65.txt AC 56 ms 19704 KiB
test_66.txt AC 60 ms 21644 KiB
test_67.txt AC 61 ms 22904 KiB
test_68.txt AC 61 ms 25140 KiB
test_69.txt AC 63 ms 25272 KiB
test_70.txt AC 62 ms 25272 KiB
test_71.txt AC 60 ms 25188 KiB
test_72.txt AC 52 ms 16884 KiB
test_73.txt AC 61 ms 20904 KiB
test_74.txt AC 67 ms 23168 KiB
test_75.txt AC 68 ms 24476 KiB
test_76.txt AC 21 ms 3516 KiB
test_77.txt AC 20 ms 3500 KiB
test_78.txt AC 19 ms 3600 KiB
test_79.txt AC 18 ms 3540 KiB
test_80.txt AC 22 ms 3592 KiB
test_81.txt AC 21 ms 3540 KiB
test_82.txt AC 20 ms 3540 KiB
test_83.txt AC 19 ms 3536 KiB
test_84.txt AC 19 ms 3464 KiB
test_85.txt AC 23 ms 3532 KiB