Submission #235597

#TimeUsernameProblemLanguageResultExecution timeMemory
235597dooweySob (COCI19_sob)C++14
0 / 110
1087 ms512 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;

#define fi first
#define se second
#define mp make_pair
#define fastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int N = 505;
int cnt[N];
bool ban[N];
bool use[N];

int main(){
  fastIO;
  int n, m;
  cin >> n >> m;
  for(int i = 0 ; i < n; i ++ ){
    for(int j = 0 ; j < n; j ++){
      if((i & (m + j)) == i) cnt[i] ++ ;
    }
  }
  int low;
  for(int sol = 0; sol < n ; sol ++ ){
    low = -1;
    for(int i = 0 ; i < n ; i ++ ){
      if(ban[i]) continue;
      if(low == -1 || cnt[i] < cnt[low]){
        low = i;
      }
    }
    if(cnt[low] == 0){
      assert(0);
      return 0;
    }
    for(int j = 0 ; j < n; j ++ ){
      if(use[j]) continue;
      if((low & (m + j)) == low){
        cout << low << " " << m + j << "\n"; 
        use[j]=true;
        ban[low]=true;
        for(int x = 0; x < n; x ++ ){
          if((x & (m + j)) == x)
            cnt[x]--;
        }
        break;
      }
    }
  }
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...