void vai(char *pre, char *em, int n)
{
  if(n == 0) return;
  int c = pre[0];

  int i = 0;
  while(em[i] != c)
    i++;
  vai(pre+1, em, i);
  vai(pre+1+i, em+i+1, n-1-i);
  putchar(c);
}
Esempio n. 2
0
int main()
{
  int n;
  scanf(" %d", &n);

  for(int i = 0; i < n; i++)
    for(int j = 0; j < 3; j++)
      scanf(" %d", &ent[i][j]);

  for(int i = 0; i < n; i++){

    for(int a = 0; a < MAX; a++)
      for(int b = 0; b < MAX; b++)
	mat[a][b] = 0.0;

    int k = 0;
    for(int j = 0; j < n; j++){
      if(i == j) continue;
      for(int l = 0; l < 3; l++)
	mat[k][l] = 1.0 / ent[j][l] - 1.0/ent[i][l];
      mat[k][k+3] = -1.0;
      k++;
    }
    printf("%s\n", (vai(n-1, n-1+3) ? "YES" : "NO"));
  }

}
Esempio n. 3
0
bool EarClipper::isInsideOfTriangle(Point2D a, Point2D b, Point2D c, Point2D i) {
    Vector2D vai(a, i);
    Vector2D vic(i, c);
    Vector2D vib(i, b);
    Vector2D vci(c, i);

    return ((vai.orientation(vic) < 0 && vai.orientation(vib) > 0 && vci.orientation(vib) < 0) ||
            (vai.orientation(vic) > 0 && vai.orientation(vib) < 0 && vci.orientation(vib) > 0));
}
int main()
{
  int casos;
  scanf(" %d", &casos);
  while(casos--){
    int n;
    char s1[100], s2[100];
    scanf(" %d %s %s", &n, s1, s2);
    vai(s1, s2, n);
    puts("");
  }
  return 0;
}
Esempio n. 5
0
ll vai(int x, int k)
{
  if(k == 1) return 1;

  ll &r = pd[x][k];
  if(r != -1) return r;
  r = 0;
  for(int i = 1; i < k; i++){
    int a = x-k-1;
    int b = k-i-1;
    r = (r + vai(k, i) * comb(a, b)) % MOD;
  }
  return r;
}
Esempio n. 6
0
bool vai(int ats, int nus, int k)
{
    if(nus == k)
        return true;

    if(ats == MAX)
        return false;

    bool ant[MAX];
    if(ns[ats] >= k) {
        int c = 0;
        for(int i = 0; i < MAX; i++) {
            ant[i] = comum[i];
            comum[i] = comum[i] && mat[ats][i];
            if(comum[i])
                c++;
        }
        if(c >= k && vai(ats+1, nus+1, k))
            return true;
        for(int i = 0; i < MAX; i++)
            comum[i] = ant[i];
    }
    return vai(ats+1, nus, k);
}
Esempio n. 7
0
int main()
{
  memset(pd, -1, sizeof pd);

  for(int i = 0; i < MAX; i++)
    cb[i][0] = cb[i][i] = 1;
  for(int i = 2; i < MAX; i++)
    for(int j = 1; j < i; j++)
      cb[i][j] = ((cb[i-1][j] + cb[i-1][j-1])%MOD);

  int casos, n;
  scanf(" %d", &casos);
  for(int h = 1; h <= casos; h++){
    scanf(" %d", &n);
    ll r = 0;
    for(int i = 1; i <= n; i++)
      r += vai(n, i);
    r %= MOD;
    printf("Case #%d: %lld\n", h, r);
  }
  return 0;
}
Esempio n. 8
0
bool tenta(int k)
{
    for(int i = 0; i < MAX; i++)
        comum[i] = true;
    return vai(0, 0, k);
}