Submission #759960

#TimeUsernameProblemLanguageResultExecution timeMemory
759960denniskimLokahian Relics (FXCUP4_lokahia)C++17
0 / 100
2 ms724 KiB
#include "lokahia.h" #include <bits/stdc++.h> using namespace std; typedef int ll; typedef __int128 lll; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<ld, ld> pld; #define MAX 9223372036854775807LL #define MIN -9223372036854775807LL #define INF 0x3f3f3f3f3f3f3f3f #define fi first #define se second #define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cout << fixed; cout.precision(10); #define sp << " " #define en << "\n" #define compress(v) sort(v.begin(), v.end()), v.erase(unique(v.begin(), v.end()), v.end()) ll chk[210][210]; ll cou[210]; ll grp[210]; ll FindBase(ll N) { if(N <= 2) return 1; srand(time(NULL)); if(N <= 17) { for(ll i = 0 ; i < N ; i++) { for(ll j = i + 1 ; j < N ; j++) { ll gap = CollectRelics(i, j); if(gap != -1) { grp[i] = gap; grp[j] = gap; } } } for(ll i = 0 ; i < N ; i++) cou[grp[i]]++; ll maxx = 0, ans = 0; for(ll i = 0 ; i < N ; i++) { if(maxx < cou[i]) { maxx = cou[i]; ans = i; } } if(maxx * 2 >= N) return ans; return -1; } for(ll i = 0 ; i < 300 ; i++) { ll num1 = rand() % N, num2 = rand() % N; ll coco = 0; while(chk[num1][num2] || num1 == num2) { num1 = rand() % N; num2 = rand() % N; coco++; if(coco >= 100000) break; } if(coco >= 100000) continue; ll gap = CollectRelics(num1, num2); chk[num1][num2] = chk[num2][num1] = 1; if(gap != -1) cou[gap]++; } ll maxx = 0, sum = 0, ans = 0; for(ll i = 0 ; i < N ; i++) { if(cou[i] > maxx) { maxx = cou[i]; ans = i; } sum += cou[i]; } return -1; if(sum - maxx * 2 <= 10) return ans; return -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...