Submission #862492

#TimeUsernameProblemLanguageResultExecution timeMemory
862492AtabayRajabliTable Tennis (info1cup20_tabletennis)C++17
100 / 100
48 ms4668 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> // author : AtabeyR #define pb push_back #define pii pair<int, int> #define pll pair<ll, ll> #define all(v) v.begin(), v.end() #define OPT ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define sec second #define fi first #define int ll #define print(k) cerr << "Ans : "; cout << k << endl; #define ins insert #define bpc __builtin_popcountll #define skip continue #define endll '\n' #define gcd(a, b) __gcd(a, b) #define lcm(a, b) a*b / (__gcd(a, b)) typedef long long ll; typedef unsigned long long ull; const int oo = 0x3F3F3F3F; const int ooo = 0x3F3F3F3F3F3F3F3FLL; const int mod = 998244353; const int sz = 2e5; using namespace std; using namespace __gnu_pbds; template<class T> using ordered_set = tree<T, null_type,less<T>, rb_tree_tag,tree_order_statistics_node_update>; void open(string s) { freopen((s + ".in").c_str(), "r", stdin); freopen((s + ".out").c_str(), "w", stdout); } int n, m, k, a[sz]; bool f(int start, int end, int rem) { int s = start, e = end, ls = s, rs = e, team = 1; s++; e--; while(s < e) { if(a[s] - a[ls] < a[rs] - a[e]) { rem--; s++; } else if(a[s] - a[ls] > a[rs] - a[e]) { rem--; e--; } else { ls = s; rs = e; s++; e--; } if(rem < 0)break; } if(rem < 0)return 0; s = start + 1; e = end - 1; ls = start; rs = end; vector<int> l, r; l.pb(a[ls]); r.pb(a[rs]); while(s < e) { if(a[s] - a[ls] < a[rs] - a[e]) { rem--; s++; } else if(a[s] - a[ls] > a[rs] - a[e]) { rem--; e--; } else if(l.size() < n/2) { ls = s; rs = e; l.pb(a[ls]); r.pb(a[rs]); s++; e--; } else break; } for(int i : l)cout << i << " "; reverse(all(r)); for(int i : r)cout << i << " "; return 1; } void solve() { cin >> n >> k; for(int i = 1; i<=n+k; i++)cin >> a[i]; for(int i = 0; i<=k; i++) { for(int j = 0; j<=i; j++) { if(f(j+1, n+k-(i-j), k-i))return; } } } int32_t main() { // open("i"); OPT int t = 1; // cin >> t; for(int i = 1; i<=t; i++) solve(); }

Compilation message (stderr)

tabletennis.cpp: In function 'bool f(ll, ll, ll)':
tabletennis.cpp:93:26: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   93 |         else if(l.size() < n/2)
      |                 ~~~~~~~~~^~~~~
tabletennis.cpp:44:45: warning: unused variable 'team' [-Wunused-variable]
   44 |     int s = start, e = end, ls = s, rs = e, team = 1;
      |                                             ^~~~
tabletennis.cpp: In function 'void open(std::string)':
tabletennis.cpp:35:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |     freopen((s + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tabletennis.cpp:36:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |     freopen((s + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...