답안 #362102

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
362102 2021-02-01T18:43:50 Z mosiashvililuka Table Tennis (info1cup20_tabletennis) C++14
100 / 100
444 ms 44780 KB
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,e,i,j,ii,jj,zx,xc,f[150409],k,n,pi,p[150409];
map <long long, long long> m;
map <long long, long long>::iterator it;
void chk(int q){
	pi=0;
	ii=a;
	for(i=1; i<=a; i++){
		while(ii>i&&f[ii]+f[i]>q) ii--;
		if(ii<=i) break;
		if(f[i]+f[ii]==q){
			pi++;
			p[pi]=f[i];
			pi++;
			p[pi]=f[ii];
		}
	}
	if(pi>=n){
		while(pi>n) pi-=2;
		sort(p+1,p+pi+1);
		for(i=1; i<=pi; i++){
			cout<<p[i]<<" ";
		}
		exit(0);
	}
}
int main(){
	ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	//freopen("magalitiinput.txt","r",stdin);
	cin>>n>>k;
	a=n+k;
	for(i=1; i<=a; i++){
		cin>>f[i];
	}
	sort(f+1,f+a+1);
	if(4*k>=a){
		for(int hi=1; hi<=k+1; hi++){
			for(int hj=a; hj>=a-k; hj--){
				if(hi>=hj||hi-1+a-hj>k||m[f[hi]+f[hj]]==1) continue;
				m[f[hi]+f[hj]]=1;
				chk(f[hi]+f[hj]);
			}
		}
	}else{
		for(int hi=1; hi<=2*k; hi++){
			for(int hj=a; hj>a-2*k; hj--){
				m[f[hi]+f[hj]]++;
			}
		}
		for(it=m.begin(); it!=m.end(); it++){
			if((*it).second>=k){
				chk((*it).first);
			}
		}
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 876 KB Output is correct
2 Correct 44 ms 4204 KB Output is correct
3 Correct 41 ms 4204 KB Output is correct
4 Correct 42 ms 4332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 42 ms 4204 KB Output is correct
2 Correct 42 ms 4204 KB Output is correct
3 Correct 52 ms 4204 KB Output is correct
4 Correct 44 ms 4332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 4 ms 620 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 3 ms 620 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 492 KB Output is correct
3 Correct 2 ms 492 KB Output is correct
4 Correct 1 ms 492 KB Output is correct
5 Correct 1 ms 492 KB Output is correct
6 Correct 1 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 45 ms 5100 KB Output is correct
3 Correct 44 ms 5100 KB Output is correct
4 Correct 45 ms 5228 KB Output is correct
5 Correct 46 ms 5100 KB Output is correct
6 Correct 43 ms 5100 KB Output is correct
7 Correct 48 ms 5100 KB Output is correct
8 Correct 49 ms 5228 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 424 ms 41836 KB Output is correct
3 Correct 444 ms 44780 KB Output is correct
4 Correct 301 ms 39276 KB Output is correct
5 Correct 177 ms 14956 KB Output is correct
6 Correct 72 ms 6124 KB Output is correct
7 Correct 260 ms 34972 KB Output is correct
8 Correct 248 ms 37996 KB Output is correct