Submission #369157

# Submission time Handle Problem Language Result Execution time Memory
369157 2021-02-20T15:33:08 Z doowey Table Tennis (info1cup20_tabletennis) C++14
87 / 100
3000 ms 3324 KB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;

#define fi first
#define se second
#define mp make_pair
#define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

int main(){
    fastIO;
    int n, k;
    cin >> n >> k;
    int m = (n + k);
    vector<int> q(m);
    for(int i = 0; i  < m ; i ++)
        cin >> q[i];
    sort(q.begin(), q.end());
    int pari = 0;
    int rem = n/2;
    vector<int> soln;
    int ci, cj;
    int pi, pj;
    bool brok;
    for(int i = 0 ; i < m ; i ++ ){
        for(int j = 1; j <= k + 1; j ++ ){
            if(i + j < m){
                if(i + 1 >= n/2 && m-(i+j) >= n/2){
                    rem = n/2-1;
                    pi = i;
                    pj = i+j;
                    soln.clear();
                    soln.push_back(i);
                    soln.push_back(i + j);
                    ci = i-1;
                    cj = j+1;
                    while(rem > 0){
                        if(ci < 0 || cj >= m || (ci + 1) < rem || (m-cj) < rem) break;
                        if(q[pi]+q[pj] == q[ci]+q[cj]){
                            soln.push_back(ci);
                            soln.push_back(cj);
                            pi = ci;
                            pj = cj;
                            ci -- ;
                            cj ++ ;
                            rem -- ;
                        }
                        else{
                            if(q[ci]+q[cj] > q[pi]+q[pj]){
                                ci--;
                            }
                            else{
                                cj++;
                            }
                        }
                    }
                    if(rem == 0){
                        sort(soln.begin(), soln.end());
                        for(auto x : soln)
                            cout << q[x] << " ";
                        cout << "\n";
                        return 0;
                    }
                }
            }
        }
    }
    return 0;
}

Compilation message

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:22:9: warning: unused variable 'pari' [-Wunused-variable]
   22 |     int pari = 0;
      |         ^~~~
tabletennis.cpp:27:10: warning: unused variable 'brok' [-Wunused-variable]
   27 |     bool brok;
      |          ^~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 492 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 8 ms 876 KB Output is correct
2 Correct 45 ms 3176 KB Output is correct
3 Correct 42 ms 3176 KB Output is correct
4 Correct 43 ms 3176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 44 ms 3176 KB Output is correct
2 Correct 43 ms 3176 KB Output is correct
3 Correct 44 ms 3176 KB Output is correct
4 Correct 47 ms 3176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 3 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 2 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 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 0 ms 364 KB Output is correct
2 Correct 2 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 2 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 2 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Output is correct
2 Correct 103 ms 3176 KB Output is correct
3 Correct 52 ms 3176 KB Output is correct
4 Correct 96 ms 3196 KB Output is correct
5 Correct 76 ms 3176 KB Output is correct
6 Correct 97 ms 3324 KB Output is correct
7 Correct 90 ms 3176 KB Output is correct
8 Correct 100 ms 3176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Execution timed out 3054 ms 876 KB Time limit exceeded
3 Halted 0 ms 0 KB -