Submission #377657

#TimeUsernameProblemLanguageResultExecution timeMemory
377657wildturtleTable Tennis (info1cup20_tabletennis)C++14
87 / 100
3047 ms53084 KiB
#include<bits/stdc++.h> using namespace std; long long n,k,cnt,A[500005]; map <long long,long long> mp,mp1; vector <long long> v,st; long long check(long long sum) { for(long long i=1;i<=n;i++) mp1[A[i]]++; cnt=0; v.clear(); for(long long i=1;i<=n;i++) { if(mp1[A[i]]==0) continue; mp1[A[i]]--; if(mp1[sum-A[i]]>=1) { cnt++; mp1[sum-A[i]]=0; v.push_back(A[i]); v.push_back(sum-A[i]); if(cnt==(n-k)/2) break; } } mp1.clear(); if(cnt>=(n-k)/2) return 1; else return 0; } int main() { scanf( "%d", &n ); scanf( "%d", &k ); n+=k; for(long long i=1;i<=n;i++) { scanf( "%d", &A[i] ); } sort(A+1,A+1+n); if(n>=4*k) { for(long long i=1;i<=2*k;i++) { for(long long j=n-2*k+1;j<=n;j++) { mp[A[i]+A[j]]++; if(mp[A[i]+A[j]]>=k) st.push_back(A[i]+A[j]); } } for(long long i=0;i<st.size();i++) { if(check(st[i])) break; } sort(v.begin(),v.end()); for(long long i=0;i<v.size();i++) printf ("%d ", v[i]); } else { for(long long i=1;i<=k;i++) { for(long long j=n-k+i-1;j<=n;j++) { st.push_back(A[i]+A[j]); } } for(long long i=0;i<st.size();i++) { if(check(st[i])) break; } sort(v.begin(),v.end()); for(long long i=0;i<v.size();i++) printf ("%d ", v[i]); } }

Compilation message (stderr)

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:24:14: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
   24 |     scanf( "%d", &n );
      |             ~^   ~~
      |              |   |
      |              |   long long int*
      |              int*
      |             %lld
tabletennis.cpp:25:14: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
   25 |     scanf( "%d", &k );
      |             ~^   ~~
      |              |   |
      |              |   long long int*
      |              int*
      |             %lld
tabletennis.cpp:28:18: warning: format '%d' expects argument of type 'int*', but argument 2 has type 'long long int*' [-Wformat=]
   28 |         scanf( "%d", &A[i] );
      |                 ~^   ~~~~~
      |                  |   |
      |                  |   long long int*
      |                  int*
      |                 %lld
tabletennis.cpp:38:28: 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]
   38 |         for(long long i=0;i<st.size();i++) {
      |                           ~^~~~~~~~~~
tabletennis.cpp:42:28: 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]
   42 |         for(long long i=0;i<v.size();i++)
      |                           ~^~~~~~~~~
tabletennis.cpp:43:19: warning: format '%d' expects argument of type 'int', but argument 2 has type '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} [-Wformat=]
   43 |         printf ("%d ", v[i]);
      |                  ~^
      |                   |
      |                   int
      |                  %lld
tabletennis.cpp:51:28: 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]
   51 |         for(long long i=0;i<st.size();i++) {
      |                           ~^~~~~~~~~~
tabletennis.cpp:55:28: 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]
   55 |         for(long long i=0;i<v.size();i++)
      |                           ~^~~~~~~~~
tabletennis.cpp:56:19: warning: format '%d' expects argument of type 'int', but argument 2 has type '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'} [-Wformat=]
   56 |         printf ("%d ", v[i]);
      |                  ~^
      |                   |
      |                   int
      |                  %lld
tabletennis.cpp:24:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   24 |     scanf( "%d", &n );
      |     ~~~~~^~~~~~~~~~~~
tabletennis.cpp:25:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   25 |     scanf( "%d", &k );
      |     ~~~~~^~~~~~~~~~~~
tabletennis.cpp:28:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   28 |         scanf( "%d", &A[i] );
      |         ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...