답안 #366225

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
366225 2021-02-13T15:01:27 Z Ahmad_Hasan Table Tennis (info1cup20_tabletennis) C++17
72 / 100
3000 ms 403232 KB
#include <bits/stdc++.h>
#define int long long
/**
     ||||||||||       |||||     |||||    ||||||||||
    |||||||||||||     |||||     |||||  |||||
   ||||     ||||||    |||||     |||||  |||||
  |||||||||||||||||   |||||||||||||||    ||||||||||
 |||||||||||||||||||  |||||||||||||||           |||||
 |||||         |||||  |||||     |||||           |||||
 |||||         |||||  |||||     |||||    ||||||||||
AHMED;HASSAN;SAEED;
*/

using namespace std;

int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);      cout.tie(0);
    int n,k;
    cin>>n>>k;
    vector<int>v(n+k);

    map<int,int >mp,mp2;
    int nn=n+k;
    for(int i=0;i<nn;i++){
        cin>>v[i];
        mp2[v[i]]=i+1;
    }

    vector<vector<pair<int,int> > >pos((k+10)*(k+10));
    int cr=1;
    for(int i=0;i<nn&&i<k+2;i++){
        for(int j=nn-1;j>=0&&(nn-1-j)<=k+2;j--){
            if(!mp[v[i]+v[j]]){
                mp[v[i]+v[j]]=cr++;
            }
        }
    }
    int mxi=0;
    for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){
        for(int i=0;i<nn;i++){
            int vl=mp2[(it->first)-v[i]];
            if(vl>i+1){
                pos[it->second].push_back({i,vl-1});
            }
        }
    }
    /**
    for(int i=0;i<pos.size();i++){
        for(int j=0;j<pos[i].size();j++){
            cout<<pos[i][j].first<<'-'<<pos[i][j].second<<' ';
        }
        cout<<'\n';
    }*/

    for(int i=0;i<pos.size();i++)
        if(pos[i].size()>pos[mxi].size())
            mxi=i;
    vector<int>ans;
    for(int i=0;i<pos[mxi].size()&&ans.size()<n;i++){
        ans.push_back(v[pos[mxi][i].first]);
        ans.push_back(v[pos[mxi][i].second]);
    }

    sort(ans.begin(),ans.end());
    for(int i=0;i<ans.size();i++)
        cout<<ans[i]<<' ';

    return 0;
}



/**
4 3
100000000000 200000000000 300000000000 400000000000 800000000000 1000000000000 2000000000000

*/

Compilation message

tabletennis.cpp: In function 'int32_t main()':
tabletennis.cpp:57:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::vector<std::pair<long long int, long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |     for(int i=0;i<pos.size();i++)
      |                 ~^~~~~~~~~~~
tabletennis.cpp:61:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |     for(int i=0;i<pos[mxi].size()&&ans.size()<n;i++){
      |                 ~^~~~~~~~~~~~~~~~
tabletennis.cpp:61:46: 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]
   61 |     for(int i=0;i<pos[mxi].size()&&ans.size()<n;i++){
      |                                    ~~~~~~~~~~^~
tabletennis.cpp:67:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |     for(int i=0;i<ans.size();i++)
      |                 ~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1280 KB Output is correct
2 Correct 3 ms 748 KB Output is correct
3 Correct 4 ms 1260 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 3192 KB Output is correct
2 Correct 529 ms 110444 KB Output is correct
3 Correct 365 ms 82320 KB Output is correct
4 Correct 448 ms 101048 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 474 ms 110564 KB Output is correct
2 Correct 613 ms 136932 KB Output is correct
3 Correct 569 ms 138856 KB Output is correct
4 Correct 557 ms 136760 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 776 ms 64516 KB Output is correct
2 Correct 659 ms 39332 KB Output is correct
3 Correct 851 ms 68832 KB Output is correct
4 Correct 399 ms 65260 KB Output is correct
5 Correct 827 ms 68536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1004 KB Output is correct
2 Correct 80 ms 14532 KB Output is correct
3 Correct 264 ms 63588 KB Output is correct
4 Correct 159 ms 42348 KB Output is correct
5 Correct 102 ms 4076 KB Output is correct
6 Correct 21 ms 2412 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1004 KB Output is correct
2 Execution timed out 3094 ms 403232 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3080 ms 200236 KB Time limit exceeded
2 Halted 0 ms 0 KB -