Submission #366045

# Submission time Handle Problem Language Result Execution time Memory
366045 2021-02-12T20:08:22 Z soba Table Tennis (info1cup20_tabletennis) C++14
100 / 100
786 ms 90572 KB
#include <bits/stdc++.h>
 
using namespace std;
typedef long long ll;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    ll n , k;
    cin >> n >> k ;
    ll teams=n/2;
    vector<ll>v;
    ll x;
    n+=k;
    map<ll,ll>mp , occ;
    
    for(int i = 0 ; i < n ; i++)
    {
        cin >>  x;
        mp[x]++;
        v.push_back(x);
    }
    sort(v.begin(), v.end());
    vector<ll>poten;
    set<ll>ss;
    for(int i = 0 ; i< 2*k ; i++)
    {
        for( int j = n-1; j >= n-(2*k) ; j-- )
        {
           ss.insert(v[i]+v[j]);
            occ[v[i]+v[j]]++;
            poten.push_back(v[i]+v[j]);
        }
    }
    if(n-k>4*k)
    {
        poten.clear();
        for(ll u : ss)
        {
            if(occ[u]>=k)
                {
                    poten.push_back(u);
                }
        }
    }
    vector<ll>ansa;
    ll sz=poten.size() , cnt;
    for( int i = 0 ; i  < sz ; i++)
    {
        ansa.clear();
        ll tmp=teams;
        cnt=0;
        for(int j = 0 ; v[j]<(poten[i]/2) ; j++ )
        {
            if(poten[i]-v[j]==v[j])continue;
            if(mp[poten[i]-v[j]])
            {
                tmp--;
                ansa.push_back(poten[i]-v[j]);
                ansa.push_back(v[j]);
            }
            else cnt++;
            if(tmp==0)
                break;
            if(cnt==k+1)
                break;
        }
        if(tmp==0)
        {
            break;
        }
    }
    sort( ansa.begin() , ansa.end());
    for(int i = 0 ; i < teams*2 ; i++)
    {
        cout << ansa[i] <<  " " ;
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 620 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 1 ms 492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 2428 KB Output is correct
2 Correct 93 ms 14300 KB Output is correct
3 Correct 92 ms 14300 KB Output is correct
4 Correct 88 ms 14320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 93 ms 14300 KB Output is correct
2 Correct 92 ms 14308 KB Output is correct
3 Correct 107 ms 14300 KB Output is correct
4 Correct 93 ms 14300 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 2276 KB Output is correct
2 Correct 532 ms 32740 KB Output is correct
3 Correct 12 ms 2916 KB Output is correct
4 Correct 206 ms 29412 KB Output is correct
5 Correct 14 ms 2916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 3 ms 620 KB Output is correct
3 Correct 2 ms 748 KB Output is correct
4 Correct 2 ms 620 KB Output is correct
5 Correct 2 ms 620 KB Output is correct
6 Correct 2 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 94 ms 14428 KB Output is correct
3 Correct 88 ms 14300 KB Output is correct
4 Correct 106 ms 14172 KB Output is correct
5 Correct 91 ms 14172 KB Output is correct
6 Correct 128 ms 14172 KB Output is correct
7 Correct 101 ms 14172 KB Output is correct
8 Correct 103 ms 14172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 263 ms 23260 KB Output is correct
2 Correct 786 ms 85716 KB Output is correct
3 Correct 751 ms 90572 KB Output is correct
4 Correct 570 ms 81228 KB Output is correct
5 Correct 748 ms 42060 KB Output is correct
6 Correct 212 ms 22796 KB Output is correct
7 Correct 578 ms 73548 KB Output is correct
8 Correct 528 ms 78668 KB Output is correct