Submission #523400

# Submission time Handle Problem Language Result Execution time Memory
523400 2022-02-07T15:22:09 Z Ahmed2me Table Tennis (info1cup20_tabletennis) C++17
100 / 100
366 ms 33792 KB
#include <bits/stdc++.h>

using namespace std;

int n,m;
int a[200020];

int main()
{
    scanf("%d",&n);scanf("%d",&m);map<int,int>mp;
    for(int i=1;i<=n+m;i++){scanf("%d",&a[i]);}
    if(n <= 4 * m)
    {
      for(int i = 1; i <= n + m; ++i){
          for(int j = i + 1; j <= n + m; ++j){
            {
      int sum=a[i]+a[j];
      int i=1,j=n+m;
	  vector<int>ans;
      int counter=false;
      while(i<j)
      {
          if(counter>=n){break;}
          if(a[i]+a[j]==sum){counter+=2;ans.push_back(a[i]);ans.push_back(a[j]);i++;j--;}
          else if(a[i]+a[j]>sum){j--;}
          else if(a[i]+a[j]<sum){i++;}
      }
      if(counter==n)
      {
        sort(ans.begin(),ans.end());
        for(int i=0;i<ans.size();i++){printf("%d%c",ans[i],' ');} 
        return 0;
      }
    }
          }
      }
      return 0;
    }
    for(int i=1;i<=min(n,2*m);i++)
    {
        for(int j=max(1,(n-m+1));j<=n+m;j++)
        {
            mp[(a[i]+a[j])]++;
        }
    }
    for(auto I:mp)
    {
      if(I.second<m){continue;}
      int sum=I.first;
      int i=1,j=n+m;
	  vector<int>ans;
      int counter=false;
      while(i<j)
      {
          if(counter>=n){break;}
          if(a[i]+a[j]==sum){counter+=2;ans.push_back(a[i]);ans.push_back(a[j]);i++;j--;}
          else if(a[i]+a[j]>sum){j--;}
          else if(a[i]+a[j]<sum){i++;}
      }
      if(counter==n)
      {
        sort(ans.begin(),ans.end());
        for(int i=0;i<ans.size();i++){printf("%d%c",ans[i],' ');} 
        return 0;
      }
    }
  return 0;
}

Compilation message

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:31:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |         for(int i=0;i<ans.size();i++){printf("%d%c",ans[i],' ');}
      |                     ~^~~~~~~~~~~
tabletennis.cpp:63:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |         for(int i=0;i<ans.size();i++){printf("%d%c",ans[i],' ');}
      |                     ~^~~~~~~~~~~
tabletennis.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d",&n);scanf("%d",&m);map<int,int>mp;
      |     ~~~~~^~~~~~~~~
tabletennis.cpp:10:25: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     scanf("%d",&n);scanf("%d",&m);map<int,int>mp;
      |                    ~~~~~^~~~~~~~~
tabletennis.cpp:11:34: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     for(int i=1;i<=n+m;i++){scanf("%d",&a[i]);}
      |                             ~~~~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 2 ms 320 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 960 KB Output is correct
2 Correct 56 ms 3876 KB Output is correct
3 Correct 65 ms 3884 KB Output is correct
4 Correct 54 ms 3840 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 44 ms 4092 KB Output is correct
2 Correct 53 ms 3952 KB Output is correct
3 Correct 44 ms 3916 KB Output is correct
4 Correct 54 ms 3896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 304 KB Output is correct
2 Correct 8 ms 300 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 4 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 304 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 316 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 2 ms 332 KB Output is correct
6 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 64 ms 4140 KB Output is correct
3 Correct 49 ms 3896 KB Output is correct
4 Correct 43 ms 3876 KB Output is correct
5 Correct 61 ms 3888 KB Output is correct
6 Correct 47 ms 4864 KB Output is correct
7 Correct 38 ms 3956 KB Output is correct
8 Correct 70 ms 3896 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 366 ms 31652 KB Output is correct
3 Correct 282 ms 33792 KB Output is correct
4 Correct 225 ms 29660 KB Output is correct
5 Correct 137 ms 11344 KB Output is correct
6 Correct 69 ms 5740 KB Output is correct
7 Correct 189 ms 26416 KB Output is correct
8 Correct 228 ms 28732 KB Output is correct