Submission #549517

# Submission time Handle Problem Language Result Execution time Memory
549517 2022-04-16T02:01:27 Z farhan132 Table Tennis (info1cup20_tabletennis) C++17
100 / 100
304 ms 44764 KB
/***Farhan132***/
//#pragma GCC optimize("Ofast")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
//#pragma GCC optimization ("unroll-loops")
//#pragma GCC optimize("Ofast,fast-math")
 
 
#include <bits/stdc++.h>
 
 
 
using namespace std;
 
typedef long long ll;
typedef unsigned long long ull;
typedef double dd;
typedef vector<ll> vll;
typedef pair<ll , ll> ii;
typedef vector< ii > vii;
typedef pair < pair < ll , ll > , pair < ll , ll > > cm; 
typedef tuple < ll,  ll, ll > tp;
 
#define ff first
#define ss second
#define pb push_back
#define in insert
#define f0(b) for(int i=0;i<(b);i++)
#define f00(b) for(int j=0;j<(b);j++)
#define f1(b) for(int i=1;i<=(b);i++)
#define f11(b) for(int j=1;j<=(b);j++)
#define f2(a,b) for(int i=(a);i<=(b);i++)
#define f22(a,b) for(int j=(a);j<=(b);j++)
#define sf(a) scanf("%lld",&a)
#define sff(a,b) scanf("%lld %lld", &a , &b)
#define pf(a) printf("%lld\n",a)
#define pff(a,b) printf("%lld %lld\n", a , b)
#define bug printf("**!\n")
#define mem(a , b) memset(a, b ,sizeof(a))
#define front_zero(n) __builtin_clzll(n)
#define back_zero(n) __builtin_ctzll(n)
#define total_one(n) __builtin_popcount(n)
#define clean fflush(stdout)
 
const ll mod =  (ll) 998244353;
//const ll mod =  (ll) 1e9 + 7;
const ll maxn = (ll)1e8 + 5;
const int nnn = 1048590;
const int inf = numeric_limits<int>::max()-1;
//const ll INF = numeric_limits<ll>::max()-1;
const ll INF = (ll)1e18;
 
ll dx[]={0,1,0,-1};
ll dy[]={1,0,-1,0};
ll dxx[]={0,1,0,-1,1,1,-1,-1};
ll dyy[]={1,0,-1,0,1,-1,1,-1};
 
bool USACO = 0;
 
mt19937 rng(chrono::system_clock::now().time_since_epoch().count());
 
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
 
template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

const ll N = 2e5 + 5;
ll a[N];
ll n , k;

void check(ll x){
    ll l = 1, r = n + k;
    vector < ll > ans;
    while(l < r){
        if(a[l] + a[r] == x){
            ans.pb(a[l]); ans.pb(a[r]);
            if(ans.size() == n){
                sort(ans.begin(), ans.end());
                for(auto u : ans) cout << u << ' ';
                cout << '\n';
                exit(0);
            }
            l++; r--;
        }else{
            if(a[l] + a[r] < x) l++;
            else r--;
        }
    }
    return;
}

void solve(){
  
  cin >> n >> k;

  for(ll i = 1; i <= n + k; i++) cin >> a[i];

  sort(a + 1, a + n + k);

  if(4 * k >= n){
    for(ll i = 1; i <= n + k; i++){
        for(ll j = i + 1; j <= n + k; j++){
            check(a[i] + a[j]);
        }
    }
  }
  map < ll , ll > mp;
  for(ll i = 1; i <= 2*k; i++){
    for(ll j = n - k + 1; j <= n + k; j++){
        mp[a[i] + a[j]]++;
    }
  }
  for(auto [x, y] : mp){
    if(y >= k){
        check(x);
    }
  }

  
  return;
}
 
int main() {
    
    
    #ifdef LOCAL
        freopen("in", "r", stdin);
        freopen("out", "w", stdout);
        auto start_time = clock();
    #else 
       ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL);
    #endif
 
    //pre(N);
 
    ll T = 1, CT = 0;  //cin >> T; 
 
    while(T--){
       //  cout << "Case #" << ++CT <<": " ;
        solve();
    }
    #ifdef LOCAL
        auto end_time = clock();
        cerr<< "Execution time: "<<(end_time - start_time)*(int)1e3/CLOCKS_PER_SEC<<" ms\n";
    #endif
 
    return 0;
}

Compilation message

tabletennis.cpp: In function 'void check(ll)':
tabletennis.cpp:77:27: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   77 |             if(ans.size() == n){
      |                ~~~~~~~~~~~^~~~
tabletennis.cpp: In function 'int main()':
tabletennis.cpp:136:15: warning: unused variable 'CT' [-Wunused-variable]
  136 |     ll T = 1, CT = 0;  //cin >> T;
      |               ^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 1048 KB Output is correct
2 Correct 43 ms 4252 KB Output is correct
3 Correct 37 ms 5620 KB Output is correct
4 Correct 37 ms 5708 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 4264 KB Output is correct
2 Correct 34 ms 5688 KB Output is correct
3 Correct 54 ms 5748 KB Output is correct
4 Correct 37 ms 5732 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 6 ms 340 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 5 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 480 KB Output is correct
3 Correct 1 ms 468 KB Output is correct
4 Correct 1 ms 468 KB Output is correct
5 Correct 1 ms 368 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 39 ms 5836 KB Output is correct
3 Correct 41 ms 5688 KB Output is correct
4 Correct 53 ms 5744 KB Output is correct
5 Correct 38 ms 5688 KB Output is correct
6 Correct 44 ms 7624 KB Output is correct
7 Correct 39 ms 5736 KB Output is correct
8 Correct 39 ms 5744 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 304 ms 42444 KB Output is correct
3 Correct 252 ms 44764 KB Output is correct
4 Correct 180 ms 39356 KB Output is correct
5 Correct 152 ms 14944 KB Output is correct
6 Correct 79 ms 7980 KB Output is correct
7 Correct 209 ms 35004 KB Output is correct
8 Correct 209 ms 38012 KB Output is correct