Submission #423639

# Submission time Handle Problem Language Result Execution time Memory
423639 2021-06-11T10:46:15 Z jamezzz Table Tennis (info1cup20_tabletennis) C++17
72 / 100
3000 ms 10060 KB
#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);
	}
	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){
			in.clear();
			for(int l=i+1;l<j;++l)in.insert(s[l]);
			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");
}

Compilation message

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:53:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   53 |   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:21:14: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   21 |  int res=0,l,r;
      |              ^
tabletennis.cpp:45:12: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |  ans.pb(s[l]);ans.pb(s[r]);
      |            ^
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 1464 KB Output is correct
2 Correct 198 ms 9928 KB Output is correct
3 Correct 129 ms 9920 KB Output is correct
4 Correct 152 ms 10060 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 227 ms 10000 KB Output is correct
2 Correct 112 ms 10012 KB Output is correct
3 Correct 277 ms 10008 KB Output is correct
4 Correct 139 ms 9944 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 56 ms 280 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 41 ms 284 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 30 ms 376 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 31 ms 368 KB Output is correct
5 Correct 2 ms 332 KB Output is correct
6 Correct 8 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Execution timed out 3053 ms 6856 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Execution timed out 3040 ms 6924 KB Time limit exceeded
3 Halted 0 ms 0 KB -