제출 #150639

#제출 시각아이디문제언어결과실행 시간메모리
150639CHT를 사랑하는 모임 (#200)로카히아 유적 (FXCUP4_lokahia)C++17
0 / 100
7 ms640 KiB
#include"lokahia.h" #include<iostream> #include<vector> #include<algorithm> #define eb emplace_back #define fi first #define se second #define all(x) (x).begin(),(x).end() using namespace std; typedef long long ll; typedef pair<int,int>pi; typedef pair<ll,ll>pl; const ll inf=1e18; int FindBase(int N) { int cnt=0,tgt=0; vector<int>tgs,szs; vector<vector<int> >difs; int i; for(i=0;i<N;i++) { if(cnt==0) { tgt=i; cnt=1; tgs.eb(tgt); szs.eb(1); difs.eb(vector<int>()); } else { if(CollectRelics(tgt,i)!=-1) cnt++,szs[szs.size()-1]++; else difs.back().eb(i),cnt--; } } int t=tgs.back(); int n=tgs.size(); cnt=0; for(i=0;i<n;i++) { if(tgs[i]==t) cnt+=szs[i]; else { if(CollectRelics(tgs[i],t)!=-1) cnt+=szs[i]; else for(int m:difs[i]) if(CollectRelics(t,m)!=-1) cnt++; } } cout<<t<<endl; if(cnt>=N/2) return t+1; return-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...