Submission #717373

# Submission time Handle Problem Language Result Execution time Memory
717373 2023-04-01T21:53:22 Z MrM7md Table Tennis (info1cup20_tabletennis) C++17
72 / 100
3000 ms 330004 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#define F first
#define S second
#define pb push_back
#define all(a) a.begin(),a.end()
const int N=1e5;
const int off=(1<<20);
const int MOD = 1e9+7;


signed main(){
   ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
   int n,k;
   cin >> n >> k;
   int sz=n+k;
   int a[sz];
   unordered_map<int,int>mp;
   for(int i=0;i<sz;i++){
      cin >>a[i];
      mp[a[i]]++;
   }
   sort(a,a+sz);

   if(k==1){
      int f=a[sz/2]+a[sz/2-1],s=a[sz/2]+a[sz/2+1],t=a[0]+a[sz-1];
      int x=0,y=0,z=0;
      // cout<<f<<' '<<s << ' '<<t<<endl;
      for(int i=0;i<sz;i++){
         if(a[i]!=f-a[i]){
            if(!mp[f-a[i]]){
               if(x)x=-1;
               else x=a[i];
            }
         }
         else{
            x=a[i];
         }
         if(a[i]!=s-a[i]){
            if(!mp[s-a[i]]){
               if(y)z=-1;
               else y=a[i];
            }
         }
         else{
            y=a[i];
         }
         if(a[i]!=t-a[i]){
            if(!mp[t-a[i]]){
               if(z)z=-1;
               else z=a[i];
            }
         }
         else{
            z=a[i];
         }
      }
      int ans=max({z,x,y});
      for(int i=0;i<sz;i++){
         if(a[i]!=ans)cout<<a[i]<<' ';
      }
   }
   else {
      vector<int>v;
      for(int i=0;i<=k;i++){
         for(int j=0;j<=k-i;j++){
            v.pb(a[i]+a[sz-j-1]);
            // cout<<v.back()<<' ';
         }
      }
      // cout<<v.size()<<endl;
      int h[v.size()]={0};

      for(int i=0;i<sz;i++){
         for(int j=0;j<v.size();j++){
            if(a[i]!=v[j]-a[i]){
               if(!mp[v[j]-a[i]]){
                  if(h[j]<k&&h[j]>=0)h[j]++;
                  else h[j]=-1;
               }
            }
            else{
               if(h[j]<k&&h[j]>=0)h[j]++;
               else h[j]=-1;
            }
         }
      }
      int ans;
      for(int i=0;i<v.size();i++){
         if(h[i]>-1)ans=v[i];
         // cout<<pp[i].F<<' '<<pp[i].S;

      }

      for(int i=0;i<sz;i++){
         if(mp[ans-a[i]]&&ans-a[i]!=a[i])cout<<a[i]<<' ';
      }
   }
}
/*

*/

Compilation message

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:77:23: 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]
   77 |          for(int j=0;j<v.size();j++){
      |                      ~^~~~~~~~~
tabletennis.cpp:91:20: 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]
   91 |       for(int i=0;i<v.size();i++){
      |                   ~^~~~~~~~~
tabletennis.cpp:98:19: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   98 |          if(mp[ans-a[i]]&&ans-a[i]!=a[i])cout<<a[i]<<' ';
      |                ~~~^~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 1 ms 596 KB Output is correct
3 Correct 2 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 1364 KB Output is correct
2 Correct 179 ms 22628 KB Output is correct
3 Correct 175 ms 22544 KB Output is correct
4 Correct 186 ms 22516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 369 ms 40640 KB Output is correct
2 Correct 410 ms 42380 KB Output is correct
3 Correct 377 ms 40748 KB Output is correct
4 Correct 411 ms 42336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 206 ms 24500 KB Output is correct
2 Correct 107 ms 19660 KB Output is correct
3 Correct 174 ms 22608 KB Output is correct
4 Correct 317 ms 39732 KB Output is correct
5 Correct 187 ms 22552 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 61 ms 9792 KB Output is correct
3 Correct 155 ms 20352 KB Output is correct
4 Correct 131 ms 19656 KB Output is correct
5 Correct 18 ms 2544 KB Output is correct
6 Correct 8 ms 1492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 564 KB Output is correct
2 Execution timed out 3062 ms 329904 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3048 ms 330004 KB Time limit exceeded
2 Halted 0 ms 0 KB -