Submission #1002044

# Submission time Handle Problem Language Result Execution time Memory
1002044 2024-06-19T09:30:52 Z daffuwu Table Tennis (info1cup20_tabletennis) C++14
100 / 100
96 ms 7056 KB
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

long long n, k, a[156069];
vector<long long> ans, cur;

vector<long long> slv(long long sm)
{
    long long i, l, r, buang=0;
    vector<long long> ret;
    for (l=1, r=n+k; buang<=k && l<r; l++, r--)
    {
        for (; buang<=k && l<r && a[l]+a[r]!=sm; buang++)
        {
            if (a[l]+a[r]>sm) r--;
            else l++;
        }
        if (l == r) break;
        ret.push_back(l);
        ret.push_back(r);
    }
    sort(ret.begin(), ret.end());
    long long sz = ret.size();
    long long m = (sz-n)/2;
    //hapus m kiri dan m kanan
    reverse(ret.begin(), ret.end());
    for (i=1; i<=m; i++) ret.pop_back();
    reverse(ret.begin(), ret.end());
    for (i=1; i<=m; i++) ret.pop_back();
    return ret;
}

int main() 
{
    long long i, j;
    scanf("%lld%lld", &n, &k);
    for (i=1; i<=n+k; i++)
    {
        scanf("%lld", a+i);
    }
    for (i=1; i<=k+1; i++)
    {
        for (j=n+k; j>=n; j--)
        {
            if (i<j)
            {
                cur = slv(a[i]+a[j]);
                if (cur.size() == n)
                {
                    ans = cur;
                    i = k+2;
                    break;
                }
            }
        }
    }
    for (auto x:ans) printf("%lld ", a[x]);
    printf("\n");
}

Compilation message

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:51:32: 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]
   51 |                 if (cur.size() == n)
      |                     ~~~~~~~~~~~^~~~
tabletennis.cpp:39:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |     scanf("%lld%lld", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~
tabletennis.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |         scanf("%lld", a+i);
      |         ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 1392 KB Output is correct
2 Correct 35 ms 6852 KB Output is correct
3 Correct 26 ms 6856 KB Output is correct
4 Correct 28 ms 6860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 27 ms 6860 KB Output is correct
2 Correct 28 ms 6964 KB Output is correct
3 Correct 26 ms 6852 KB Output is correct
4 Correct 27 ms 6904 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 2 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 444 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 472 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 480 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 24 ms 6976 KB Output is correct
3 Correct 23 ms 6860 KB Output is correct
4 Correct 25 ms 6860 KB Output is correct
5 Correct 26 ms 6856 KB Output is correct
6 Correct 24 ms 7056 KB Output is correct
7 Correct 26 ms 6856 KB Output is correct
8 Correct 28 ms 6848 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 356 KB Output is correct
2 Correct 90 ms 7016 KB Output is correct
3 Correct 26 ms 6860 KB Output is correct
4 Correct 60 ms 7012 KB Output is correct
5 Correct 27 ms 6852 KB Output is correct
6 Correct 28 ms 6852 KB Output is correct
7 Correct 96 ms 7016 KB Output is correct
8 Correct 25 ms 6852 KB Output is correct