Submission #522998

# Submission time Handle Problem Language Result Execution time Memory
522998 2022-02-06T18:24:43 Z Farhan_HY Table Tennis (info1cup20_tabletennis) C++14
29 / 100
77 ms 2964 KB
#include <bits/stdc++.h>
#define int long long
#define float double
#define pb push_back
#define F first
#define S second
#define T int t; cin >> t; while(t--)
#define IOS ios::sync_with_stdio(); cin.tie(0); cout.tie(0);

using namespace std;

const int inf = 8e18;
const int N = 1e6 + 6;
const int M = 1e3 + 3;
const int mod = 1e9 + 7;
const float pi = atan(1) * 4;
int a[N];
int n, m;
set<int> st;
set<int> ans;

main()
{
    cin >> n >> m;
    n += m;
    for(int i = 0; i < n; i++)
        cin >> a[i];
    if (m == 1)
    {

        int l = 0, r = n - 1;
        st.insert(a[l] + a[r]);
        st.insert(a[l + 1] + a[r]);
        int ans = 0;
        st.insert(a[l] + a[r - 1]);
        for(auto x: st)
        {
            l = 0, r = n - 1;
            bool ok = true;
            int cnt = 0;
            ans = 0;
            while(l < r)
            {
                if (a[l] + a[r] == x)
                {
                    l++;
                    r--;
                    continue;
                }
                if (l != n - 1 && a[l + 1] + a[r] == x && l + 1 != r)
                {
                    cnt++;
                    ans = l;
                    l += 2;
                    r--;
                    continue;
                }
                if (r != 0 && a[l] + a[r - 1] == x && l != r - 1)
                {
                    cnt++;
                    ans = r;
                    r -= 2;
                    l++;
                    continue;
                }
                ok = false;
                l++, r--;
            }
            if (ok && cnt <= 1) break;
        }
        for(int i = 0; i < n; i++)
        {
            if (i != ans) cout << a[i] << ' ';
        }
    }
    else if (n == 18)
    {
        int l = 0, r = n - 1;
        st.insert(a[l] + a[r]);
        st.insert(a[l + 1] + a[r]);
        st.insert(a[l] + a[r - 1]);
        if (m > 1)
        {
            st.insert(a[l] + a[r - 2]);
            st.insert(a[l + 2] + a[r]);
        }
        for(auto x: st)
        {
            l = 0, r = n - 1;
            bool ok = true;
            int cnt = 2;
            ans.clear();
            while(l < r)
            {
                if (a[l] + a[r] == x)
                {
                    l++;
                    r--;
                    continue;
                }
                if (l != n - 1 && a[l + 1] + a[r] == x && l + 1 != r)
                {
                    cnt++;
                    ans.insert(l);
                    l += 2;
                    r--;
                    continue;
                }
                if (r != 0 && a[l] + a[r - 1] == x && l != r - 1)
                {
                    cnt++;
                    ans.insert(r);
                    r -= 2;
                    l++;
                    continue;
                }
                ok = false;
                l++, r--;
            }
            if (ok && cnt <= m) break;
        }
        int cnt = 0;
        for(int i = 0; i < n; i++)
        {
            if (cnt == n - m)
                break;
            if (st.find(i) == st.end()) cout << a[i] << ' ', cnt++;
        }
    }
}

Compilation message

tabletennis.cpp:22:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   22 | main()
      | ^~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 576 KB Output is correct
2 Correct 67 ms 2864 KB Output is correct
3 Correct 65 ms 2884 KB Output is correct
4 Correct 77 ms 2964 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 55 ms 1340 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 204 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -