Submission #1292125

#TimeUsernameProblemLanguageResultExecution timeMemory
1292125shidou26Lampice (COCI19_lampice)C++20
110 / 110
3802 ms62188 KiB
#include <bits/stdc++.h> using namespace std; #ifdef KURUMI #include "algo/debug.h" #endif #define int long long #define endl '\n' #define fi first #define se second #define sz(v) (int)v.size() #define all(v) v.begin(), v.end() #define filter(v) v.resize(unique(all(v)) - v.begin()) #define dbg(x) "[" #x << " = " << x << "]" mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); template<typename T1, typename T2> T2 rand(T1 l, T2 r) { return uniform_int_distribution<T2>(l, r)(rng); } template<typename T1, typename T2> T2 wrand(T1 l, T2 r, int seed) { if(seed == 0) return rand(l, r); else return (seed > 0 ? max(rand(l, r), wrand(l, r, seed - 1)) : min(rand(l, r), wrand(l, r, seed + 1))); } template<typename T> bool maximize(T &a, T b) { if(a < b) { a = b; return true; }else return false; } template<typename T> bool minimize(T &a, T b) { if(a > b) { a = b; return true; }else return false; } typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, int> pli; typedef pair<ll, ll> pll; typedef tuple<int, int, int> tp3; const int N = 5e4 + 3; int n; int a[N]; string s; vector<int> adj[N]; void input() { cin >> n >> s; s = '.' + s; for(int i = 1; i <= n; i++) { a[i] = s[i] - 'a' + 1; } for(int i = 1; i < n; i++) { int u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } } namespace Modulo { const int MOD = (119 << 23) + 1; const int base = 31; int pwr[N]; int add(int x, int y) { return x + y >= MOD ? x + y - MOD : x + y; } int sub(int x, int y) { return x - y < 0 ? x - y + MOD : x - y; } int prod(int x, int y) { return 1LL * x * y % MOD; } int gen_hash(string s) { int tot = 0; for(char c : s) tot = add(prod(tot, base), c - 'a' + 1); return tot; } } using namespace Modulo; namespace Centroid { int deepest; int siz[N]; bool passed[N]; unordered_map<int, bool> exist[N]; void dfs_size(int u, int p) { siz[u] = 1; for(int v : adj[u]) { if(v == p || passed[v]) continue; dfs_size(v, u); siz[u] += siz[v]; } } int find_centroid(int u, int p, int tar) { for(int v : adj[u]) { if(v == p || passed[v]) continue; if(siz[v] * 2 > tar) return find_centroid(v, u, tar); } return u; } bool dfs_get(int u, int p, int up, int down, int dep, int k) { if(dep > k) return false; maximize(deepest, dep); int represent = sub(prod(up, pwr[k - dep]), down); if(exist[k - dep][represent]) return true; for(int v : adj[u]) { if(v == p || passed[v]) continue; if(dfs_get(v, u, add(prod(a[v], pwr[dep]), up), add(prod(down, base), a[v]), dep + 1, k)) return true; } return false; } void dfs_add(int u, int p, int up, int down, int dep, int k) { if(dep > k) return; maximize(deepest, dep); int represent = sub(prod(up, pwr[k - dep]), down); exist[dep][represent] = true; for(int v : adj[u]) { if(v == p || passed[v]) continue; dfs_add(v, u, add(prod(a[v], pwr[dep]), up), add(prod(down, base), a[v]), dep + 1, k); } } bool decompose(int u, int k) { dfs_size(u, -1); u = find_centroid(u, -1, siz[u]); deepest = 1; exist[1][sub(prod(a[u], pwr[k - 1]), a[u])] = true; for(int v : adj[u]) { if(passed[v]) continue; if(dfs_get(v, u, a[v], a[v], 1, k)) return true; dfs_add(v, u, add(prod(base, a[v]), a[u]), add(prod(base, a[u]), a[v]), 2, k); } for(int i = 1; i <= deepest; i++) exist[i].clear(); passed[u] = true; for(int v : adj[u]) { if(passed[v]) continue; if(decompose(v, k)) return true; } return false; } } using namespace Centroid; bool trial(int k) { if(k == 1) return true; for(int i = 1; i <= n; i++) { passed[i] = false; exist[i].clear(); } return decompose(1, k); } void process() { pwr[0] = 1; for(int i = 1; i <= n; i++) { pwr[i] = prod(pwr[i - 1], base); } vector<int> odd, even; for(int i = 1; i <= n; i++) { (i & 1 ? odd.push_back(i) : even.push_back(i)); } int l = 0, r = sz(odd) - 1, answer = 0; while(l <= r) { int mid = (l + r) >> 1; if(trial(odd[mid])) maximize(answer, odd[mid]), l = mid + 1; else r = mid - 1; } l = 0, r = sz(even) - 1; while(l <= r) { int mid = (l + r) >> 1; if(trial(even[mid])) maximize(answer, even[mid]), l = mid + 1; else r = mid - 1; } cout << answer << endl; } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); #define task "Deeto" if(fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } int testcase = 1; // cin >> testcase; for(int i = 1; i <= testcase; i++) { input(); process(); } cerr << "Saa, watashtachi no deeto hajimemashou" << endl; cerr << "Atarashii kiseki wo koko kara hajimeru shining place nee mou ichido kimi to..." << 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 (stderr)

lampice.cpp: In function 'int32_t main()':
lampice.cpp:214:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  214 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
lampice.cpp:215:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  215 |         freopen(task".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...