Submission #424448

#TimeUsernameProblemLanguageResultExecution timeMemory
424448jamezzzTable Tennis (info1cup20_tabletennis)C++17
87 / 100
3071 ms4540 KiB
#include <bits/stdc++.h>
using namespace std;

#define sf scanf
#define pf printf
#define pb emplace_back
#define all(x) x.begin(),x.end()

int n,k,v;
vector<int> s,ans;

int main(){
	sf("%d%d",&n,&k);
	n+=k;
	for(int i=0;i<n;++i){
		sf("%d",&v);
		s.push_back(v);
	}
	sort(all(s));
	int res=0,l,r;
	for(int i=0;i<=k;++i){
		for(int j=n-(k-i)-1;j<n;++j){
			int t=s[i]+s[j],take=1;
			int cr=j-1;
			for(int l=i+1;l<j;++l){
				if(s[l]>=t-s[l])break;
				while(t-s[l]<s[cr])--cr;
				if(t-s[l]==s[cr])++take,--cr;
				if(take==(n-k)/2)break;
			}
			if(take==(n-k)/2){
				res=t;
				l=i;r=j;
				break;
			}
		}
		if(res!=0)break;
	}
	ans.pb(s[l]);ans.pb(s[r]);
	int cr=r-1;
	for(int i=l+1;i<r;++i){
		if(s[i]>=res-s[i])break;
		while(res-s[i]<s[cr])--cr;
		if(res-s[i]==s[cr]){
			ans.pb(s[i]);
			ans.pb(res-s[i]);
			--cr;
		}
		if(ans.size()==n-k)break;
	}
	sort(all(ans));
	for(int x:ans)pf("%d ",x);
	pf("\n");
}

Compilation message (stderr)

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:49:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   49 |   if(ans.size()==n-k)break;
      |      ~~~~~~~~~~^~~~~
tabletennis.cpp:13:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |  sf("%d%d",&n,&k);
      |    ^
tabletennis.cpp:16:5: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |   sf("%d",&v);
      |     ^
tabletennis.cpp:20:14: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   20 |  int res=0,l,r;
      |              ^
tabletennis.cpp:39:12: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
   39 |  ans.pb(s[l]);ans.pb(s[r]);
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...