제출 #423643

#제출 시각아이디문제언어결과실행 시간메모리
423643jamezzzTable Tennis (info1cup20_tabletennis)C++17
87 / 100
3052 ms10100 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;
unordered_set<int> in;

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

컴파일 시 표준 에러 (stderr) 메시지

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:55:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   55 |   if(ans.size()==n-k)break;
      |      ~~~~~~~~~~^~~~~
tabletennis.cpp:14:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |  sf("%d%d",&n,&k);
      |    ^
tabletennis.cpp:17:5: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |   sf("%d",&v);
      |     ^
tabletennis.cpp:22:14: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   22 |  int res=0,l,r;
      |              ^
tabletennis.cpp:47:12: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
   47 |  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...