Submission #1204634

#TimeUsernameProblemLanguageResultExecution timeMemory
1204634mychecksedadStray Cat (JOI20_stray)C++20
11 / 100
31 ms12608 KiB
#include "Anthony.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 1e6+100, M = 1e5+10, K = 52, MX = 30;

namespace {

  int FunctionExample(int i, int A) {
    return i % A;
  }
}  


vector<int> Mark(int n, int m, int A, int B,
                      std::vector<int> U, std::vector<int> V) {
  vector<int> X(m);
  vector<vector<pii>> g(n);
  for(int i = 0; i < m; ++i){
    g[U[i]].pb({V[i], i});
    g[V[i]].pb({U[i], i});
  }
  vi vis(n + 1);
  vis[0] = 1;
  queue<int> q;
  vi par(n + 1);
  vi col(n + 1);
  q.push(0);

  while(!q.empty()){
    int v = q.front(); q.pop();
    for(auto [u, idx]: g[v]){
      if(!vis[u]){
        par[u] = v;
        q.push(u);
        col[u] = (col[v] + 1) % A;
        vis[u] = 1;       
      }
    }
  }
  if(A == 3){
    for(int i = 0; i < n; ++i){
      for(auto [u, idx]: g[i]){
        if(col[u] == col[i]){
          X[idx] = col[u];
        }else{
          vi v; v.pb(col[i]); v.pb(col[u]);
          sort(all(v));
          if(v[0] != 0){
            X[idx] = 1;
          }else if(v[1] != 1){
            X[idx] = 2;
          }else{
            X[idx] = 0;
          }
        }
      }
    }
  }else{
    for(int i = 0; i < n; ++i){
      for(auto [u, idx]: g[i]){
        if(u == par[i]){
          X[idx] = col[i];
        }
      }
    }
  }

  // for(int i = 0 ; i< m; ++i){
  //   cerr << U[i] << ' ' << V[i] << ' ' << X[i] << '\n';
  // }

  return X;
}
/* Author : Mychecksdead  */
#include "Catherine.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define MOD (1000000000+7)
#define MOD1 (998244353)
#define pb push_back
#define all(x) x.begin(), x.end()
#define en cout << '\n'
#define ff first
#define ss second
#define pii pair<int,int>
#define vi vector<int>
const int N = 1e6+100, M = 1e5+10, K = 52, MX = 30;

namespace {


  int last_col = -1;
  int A, B;
}  // namespace

void Init(int A, int B) {
  ::A = A;
  ::B = B;
}

int Move(std::vector<int> y) {
  if(A == 3){
    vi v;
    if(y[0]) v.pb(0);
    if(y[1]) v.pb(1);
    if(y[2]) v.pb(2);
    if(v.size() == 1) return v[0];
    if(v[0] != 0) return 1;
    if(v[1] != 1) return 2;
    return 0;
  }
  if(y[0] + y[1] == 1){
    last_col = y[0] > 0 ? 0 : 1;
    return last_col;
  }
  if(last_col != -1){
    return last_col = 1-last_col;
  }
  return last_col = y[0] > 0 ? 0 : 1;
}
#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...