답안 #342636

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
342636 2021-01-02T14:10:40 Z ogibogi2004 Table Tennis (info1cup20_tabletennis) C++14
100 / 100
371 ms 34016 KB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=200002;
int n,k;
int a[MAXN];
bool found=0;
map<int,int> mp;
void check(int s)
{
	vector<int>v1,v2;
	int l=1,r=n+k;
	while(l<r)
	{
		if(v1.size()+v2.size()==n)break;
		if(a[l]+a[r]==s)
		{
			v1.push_back(a[l]);
			v2.push_back(a[r]);
			++l;--r;
		}
		else
		{
			if(a[l]+a[r]>s)
			{
				--r;
			}
			else ++l;
		}
	}
	if(v1.size()+v2.size()<n)return;
	reverse(v2.begin(),v2.end());
	found=1;
	for(auto xd:v1)cout<<xd<<" ";
	for(auto xd:v2)cout<<xd<<" ";
	cout<<"\n";
}
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n+k;++i)
	{
		cin>>a[i];
	}
	for(int i=1;i<=2*k;++i)
	{
		for(int j=n-k;j<=n+k;++j)
		{
			++mp[a[i]+a[j]];
		}
	}
	for(auto xd:mp)
	{
		if(xd.second<k)continue;
		check(xd.first);
		if(found)return 0;
	}
	if(n>MAXN/2)assert(false);
	for(auto xd:mp)
	{
		check(xd.first);
		if(found)return 0;
	}
return 0;
}

Compilation message

tabletennis.cpp: In function 'void check(int)':
tabletennis.cpp:14:25: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |   if(v1.size()+v2.size()==n)break;
      |      ~~~~~~~~~~~~~~~~~~~^~~
tabletennis.cpp:30:24: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   30 |  if(v1.size()+v2.size()<n)return;
      |     ~~~~~~~~~~~~~~~~~~~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 512 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 5 ms 780 KB Output is correct
2 Correct 37 ms 3296 KB Output is correct
3 Correct 36 ms 3296 KB Output is correct
4 Correct 34 ms 3296 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 35 ms 3244 KB Output is correct
2 Correct 43 ms 3296 KB Output is correct
3 Correct 35 ms 3268 KB Output is correct
4 Correct 33 ms 3296 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 876 KB Output is correct
2 Correct 5 ms 1004 KB Output is correct
3 Correct 5 ms 1004 KB Output is correct
4 Correct 5 ms 1004 KB Output is correct
5 Correct 7 ms 1004 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 364 KB Output is correct
3 Correct 1 ms 512 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 364 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 34 ms 3216 KB Output is correct
3 Correct 35 ms 3216 KB Output is correct
4 Correct 37 ms 3228 KB Output is correct
5 Correct 37 ms 3296 KB Output is correct
6 Correct 37 ms 3616 KB Output is correct
7 Correct 37 ms 3296 KB Output is correct
8 Correct 37 ms 3296 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 83 ms 5996 KB Output is correct
2 Correct 371 ms 30764 KB Output is correct
3 Correct 346 ms 34016 KB Output is correct
4 Correct 229 ms 29920 KB Output is correct
5 Correct 160 ms 11608 KB Output is correct
6 Correct 70 ms 5412 KB Output is correct
7 Correct 234 ms 26640 KB Output is correct
8 Correct 200 ms 28944 KB Output is correct