Submission #1145070

#TimeUsernameProblemLanguageResultExecution timeMemory
1145070dobri_okeTable Tennis (info1cup20_tabletennis)C++20
20 / 100
3096 ms3776 KiB
//#pragma GCC target ("avx2") //#pragma GCC optimize ("Ofast") #include <bits/stdc++.h> using namespace std; #define int long long #define F first #define S second #define pb push_back const int N = 1e6, NN=26; const int mod=1e9+7; //int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } //int lcm(int a, int b) { return a / gcd(a, b) * b; } //int binpow(int a,int b){if(!b)return 1; if(b&1)return a*binpow(a,b-1)%mod; int x=binpow(a,b/2); return x*x%mod;} signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; int a[n+k+1]; if(n+k<=18){ for(int i=0;i<n+k;i++) cin >> a[i]; for(int mask=0;mask<(1<<(n+k));mask++){ vector < int > v; for(int i=0;i<n+k;i++){ if(((mask>>i)&1)) v.pb(a[i]); } if(n!=v.size()) continue; bool b=0; for(int i=0;i<v.size()/2;i++){ if(v[i]!=v[v.size()-i-1]) b=1; } if(b==0){ for(auto to : v) cout << to << ' '; return 0; } } } for(int i=1;i<=n+k;i++) cin >> a[i]; if(k==1){ int l=1, r=n+k-1; bool b=0; int sum=a[l]+a[r]; while(l<r){ if(a[l]+a[r]==sum){ l++; r--; } else{ b=1; break;} } if(b==0){ for(int i=1;i<n+k;i++) cout << a[i] << ' '; return 0; } l=2; r=n+k; sum=a[l]+a[r]; b=0; while(l<r){ if(a[l]+a[r]==sum){ l++; r--;} else{ b=1; break;} } if(b==0){ for(int i=2;i<=n+k;i++) cout << a[i] << ' '; return 0; } l=1; r=n+k; sum=a[l]+a[r]; b=0; while(l<r){ if(a[l]+a[r]==sum){ l++; r--;} else{ b=1; break;} } if(b==0){ for(int i=1;i<=n+k;i++){ if((n+k+1)/2==i) continue; cout << a[i] << ' '; } return 0; } int pos1=0, pos2=0; l=1; r=n+k; sum=a[l]+a[r]; b=0; while(l<=r){ if(a[l]+a[r]==sum){ l++; r--;} else{ pos1=l; pos2=r; break; } } l=pos1; r=pos2-1; while(l<=r){ if(a[l]+a[r]==sum){l++; r--;} else{ b=1; break;} } if(b==0){ for(int i=1;i<=n+k;i++){ if(i==pos2) continue; cout << a[i] << ' '; } return 0; } for(int i=1;i<=n+k;i++){ if(i==pos1) continue; cout << a[i] << ' '; } } else{ vector < int > v; do{ for(int i=1;i<=n;i++) v.pb(a[i]); sort(v.begin(), v.end()); bool b=0; int sum=v[0]+v[n-1]; for(int i=0;i<n/2;i++){ if(sum!=v[i]+v[n-i-1]){b=1; break;} } if(b==0) break; v.clear(); } while(next_permutation(a+1, a+n+k+1)); for(auto to : v) cout << to << ' '; } }
#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...