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 |
|
|
| 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 |