답안 #581825

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
581825 2022-06-23T07:00:59 Z MrDeboo 도서관 (JOI18_library) C++17
0 / 100
94 ms 312 KB
#include <cstdio>
#include <vector>
#include <bits/stdc++.h>
#include "library.h"
using namespace std;
vector<pair<int,int>>vec;
int N,L,R,n;
int Slv(){
	vector<int>vct[n];
	for(auto &i:vec){
		if(i.first>=L&&i.second<=R){
			vct[i.first].push_back(i.second);
			vct[i.second].push_back(i.first);
		}
	}
	int ans=0;
	vector<int>bl(n);
	for(int i=0;i<n;i++){
		if(bl[i]||vct[i].empty())continue;
		int cnt=0;
		deque<int>dq={i};
		while(dq.size()){
			int a=dq.front();
			dq.pop_front();
			if(bl[a])continue;
			bl[a]=1;
			cnt++;
			for(auto &w:vct[a])dq.push_back(w);
		}
		ans+=cnt-1;
	}
	return ans;
}
int Range(int l,int r){
	vector<int>v(n);
	for(int w=l;w<=r;w++)v[w]=1;
	L=l;
	R=r;
	int k=Query(v)+Slv();
	return k;
}
void Solve(int GGGG){
	n=GGGG;
	vector<int>vct[n];
	N=exp2(ceil(log2(n)));
	for(int i=0;i<n;i++){
		while(vct[i].size()<2){
			int l=i+1,r=n-1,mid,f=0;
			while(l<=r){
				mid=(l+r)/2;
				if(Range(i,mid)<mid-i+1){
					r=mid-1;
					f=mid;
				}else l=mid+1;
			}
			if(f==0)break;
			l=i;r=f-1;
			int g=0;
			while(l<=r){
				mid=(l+r)/2;
				if(Range(mid,f)<f-mid+1){
					l=mid+1;
					g=mid;
				}else r=mid-1;
			}
			vec.push_back({g,f});
			vct[g].push_back(f);
			vct[f].push_back(g);
		}
	}
	vector<int>res;
	deque<int>dq;
	for(int i=0;i<n&&dq.empty();i++){
		if(vct[i].size()==1)dq.push_back(i);
	}
	vector<bool>bl(n);
	while(dq.size()){
		int a=dq.front();
		dq.pop_front();
		if(bl[a])continue;
		bl[a]=1;
		res.push_back(a+1);
		for(auto &i:vct[a])dq.push_back(i);
	}
	Answer(res);
}
# 결과 실행 시간 메모리 Grader output
1 Correct 54 ms 304 KB # of queries: 2798
2 Correct 61 ms 300 KB # of queries: 2794
3 Correct 78 ms 308 KB # of queries: 2939
4 Correct 81 ms 208 KB # of queries: 2915
5 Correct 72 ms 288 KB # of queries: 2951
6 Correct 70 ms 300 KB # of queries: 2911
7 Correct 82 ms 208 KB # of queries: 2935
8 Correct 94 ms 312 KB # of queries: 2788
9 Correct 71 ms 208 KB # of queries: 2915
10 Correct 34 ms 308 KB # of queries: 1720
11 Incorrect 0 ms 208 KB Wrong Answer [4]
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 54 ms 304 KB # of queries: 2798
2 Correct 61 ms 300 KB # of queries: 2794
3 Correct 78 ms 308 KB # of queries: 2939
4 Correct 81 ms 208 KB # of queries: 2915
5 Correct 72 ms 288 KB # of queries: 2951
6 Correct 70 ms 300 KB # of queries: 2911
7 Correct 82 ms 208 KB # of queries: 2935
8 Correct 94 ms 312 KB # of queries: 2788
9 Correct 71 ms 208 KB # of queries: 2915
10 Correct 34 ms 308 KB # of queries: 1720
11 Incorrect 0 ms 208 KB Wrong Answer [4]
12 Halted 0 ms 0 KB -