Submission #525647

#TimeUsernameProblemLanguageResultExecution timeMemory
525647ammar2000Table Tennis (info1cup20_tabletennis)C++17
29 / 100
3096 ms9824 KiB
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define F first
#define S second
#define coy cout<<"YES\n"
#define con cout<<"NO\n"
#define co1 cout<<"-1\n"
#define sc(x) scanf("%lld",&x)
#define all(x) x.begin(),x.end()
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int SI=3e5+7;
ll INF=8e18+7;
int dx[] = {1 , -1 , 0 , 0};
int dy[] = {0 , 0 , 1 , -1};
int MOD=1e9+7;
ll n,k,a[SI];
vector <ll> bt;
bool out=0;
void solve(int in)
{
    if (out)
        return;
    if (bt.size()==n)
    {
        ll f=0,s=bt.size()-1;
       ll sum=bt[f]+bt[s];
       bool ok=0;
       while (f<s)
       {
           if (sum!=bt[f++]+bt[s--])
            return;
       }
       out=1;
       for (auto y:bt)
        cout <<y<<" ";
       return ;
    }
    if (in==n+k)
        return ;
    bt.pb(a[in]);
    solve(in+1);
    bt.pop_back();
    solve(in+1);
}
int main()
{
   fast
   cin>>n>>k;
   for (int i=0;i<n+k;i++)
    cin>>a[i];
   if (k==1)
   {
       ll f=0,s=n+k-2;
       ll sum=a[f]+a[s];
       bool ok=0;
       while (f<s)
       {
           if (sum!=a[f++]+a[s--])
           {ok=1;
           break;}
       }
       if (!ok)
       {
           for (int i=0;i<n+k-1;i++)
            cout <<a[i]<<" ";
           return 0;
       }
       ok=0;
       f=1,s=n+k-1;
       sum=a[f]+a[s];
       while (f<s)
       {
           if (sum!=a[f++]+a[s--])
           {ok=1;
           break;}
       }
       if (!ok)
       {
           for (int i=1;i<n+k;i++)
            cout <<a[i]<<" ";
           return 0;
       }
       f=0,s=n+k-1;
       sum=a[f]+a[s];
       vector < ll> ans;
       ans.clear();
       while(f<s)
       {
           if (a[f]+a[s]==sum)
            ans.pb(a[f]),ans.pb(a[s]),f++,s--;
           else
           {
               if (a[f+1]+a[s]==sum)
                f++;
               else s--;
           }
       }
       sort (ans.begin(),ans.end());
       for (auto y:ans)
        cout <<y<<" ";
        return 0;
   }
   solve(0);
   // use scanf not cin
   return 0;
}

Compilation message (stderr)

tabletennis.cpp: In function 'void solve(int)':
tabletennis.cpp:25:18: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   25 |     if (bt.size()==n)
      |         ~~~~~~~~~^~~
tabletennis.cpp:29:13: warning: unused variable 'ok' [-Wunused-variable]
   29 |        bool ok=0;
      |             ^~
tabletennis.cpp: In function 'int main()':
tabletennis.cpp:101:8: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  101 |        for (auto y:ans)
      |        ^~~
tabletennis.cpp:103:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  103 |         return 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...