Submission #366246

#TimeUsernameProblemLanguageResultExecution timeMemory
366246Ahmad_HasanTable Tennis (info1cup20_tabletennis)C++17
87 / 100
3055 ms43440 KiB
#include <bits/stdc++.h> #define int long long /** |||||||||| ||||| ||||| |||||||||| ||||||||||||| ||||| ||||| ||||| |||| |||||| ||||| ||||| ||||| ||||||||||||||||| ||||||||||||||| |||||||||| ||||||||||||||||||| ||||||||||||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| ||||| |||||||||| AHMED;HASSAN;SAEED; */ using namespace std; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,k; cin>>n>>k; vector<int>v(n+k); map<int,int >mp,mp2; int nn=n+k; for(int i=0;i<nn;i++){ cin>>v[i]; } vector<vector<pair<int,int> > >pos((k+5)*(k+5)); vector<int>sums((k+5)*(k+5)); int cr=0; for(int i=0;i<nn&&i<k+2;i++){ for(int j=nn-1;j>=0&&(nn-1-j)<=k+2-i;j--){ sums[cr++]=v[i]+v[j]; } } sort(sums.begin(),sums.begin()+cr); int mxi=0; int f=0; for(int j=0;j<cr;j++){ if(j<cr-1&&sums[j]==sums[j+1])continue; for(int i=0;i<nn;i++){ vector<int>::iterator it2=lower_bound(v.begin(),v.end(),sums[j]-v[i]); if(it2==v.end()||*it2!=sums[j]-v[i])continue; int vl=it2-v.begin(); if(vl>i){ pos[j].push_back({i,vl}); if(pos[j].size()>=n/2){ f=1; break; } } } } /** for(int i=0;i<pos.size();i++){ for(int j=0;j<pos[i].size();j++){ cout<<pos[i][j].first<<'-'<<pos[i][j].second<<' '; } cout<<'\n'; } */ for(int i=0;i<pos.size();i++) if(pos[i].size()>pos[mxi].size()) mxi=i; vector<int>ans(n); int l=0,r=n-1; for(int i=0;i<pos[mxi].size()&&i<n/2;i++){ ans[l]=(v[pos[mxi][i].first]); ans[r]=(v[pos[mxi][i].second]); l++; r--; } for(int i=0;i<ans.size();i++) cout<<ans[i]<<' '; return 0; } /** 4 3 100000000000 200000000000 300000000000 400000000000 800000000000 1000000000000 2000000000000 */

Compilation message (stderr)

tabletennis.cpp: In function 'int32_t main()':
tabletennis.cpp:49:33: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   49 |                 if(pos[j].size()>=n/2){
      |                    ~~~~~~~~~~~~~^~~~~
tabletennis.cpp:65:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::vector<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |     for(int i=0;i<pos.size();i++)
      |                 ~^~~~~~~~~~~
tabletennis.cpp:70:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |     for(int i=0;i<pos[mxi].size()&&i<n/2;i++){
      |                 ~^~~~~~~~~~~~~~~~
tabletennis.cpp:75:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |     for(int i=0;i<ans.size();i++)
      |                 ~^~~~~~~~~~~
tabletennis.cpp:40:9: warning: variable 'f' set but not used [-Wunused-but-set-variable]
   40 |     int f=0;
      |         ^
#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...