fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios::sync_with_stdio(false);
  6. cin.tie(nullptr);
  7.  
  8. int T;
  9. cin >> T;
  10. if (T == 1) {
  11. int N; long long X;
  12. cin >> N >> X;
  13. vector<pair<int,int>> cards(N);
  14. for (int i=0; i<N; i++) {
  15. int a,b; cin >> a >> b;
  16. if (a>b) swap(a,b);
  17. cards[i]={a,b};
  18. }
  19. vector<int> ans(N);
  20. for (int i=0; i<N; i++) {
  21. if ((X>>i)&1LL) ans[i]=cards[i].second;
  22. else ans[i]=cards[i].first;
  23. }
  24. for (int i=0; i<N; i++) {
  25. cout << ans[i] << (i+1==N?'\n':' ');
  26. }
  27. }
  28. else {
  29. int N; cin >> N;
  30. vector<int> chosen(N);
  31. for (int i=0; i<N; i++) cin >> chosen[i];
  32. // 선택 여부 표시
  33. vector<int> isChosen(2*N+1,0);
  34. for (int x: chosen) isChosen[x]=1;
  35.  
  36. long long X=0;
  37. int bit=0;
  38. for (int i=1; i<=2*N; i+=2) {
  39. int lo=i, hi=i+1; // (lo,hi) 카드쌍
  40. if (isChosen[hi]) X |= (1LL<<bit);
  41. // lo가 선택됐다면 해당 비트는 0
  42. bit++;
  43. }
  44. cout << X << "\n";
  45. }
  46. return 0;
  47. }
Success #stdin #stdout 0.01s 5248KB
stdin
2
4
2 3 5 7
stdout
1