Hatena::Grouptopcoder

Wrong Answer -- japlj このページをアンテナに追加 RSSフィード

2013-02-18

AOJ 0586

| 15:29 | AOJ 0586 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0586 - Wrong Answer -- japlj AOJ 0586 - Wrong Answer -- japlj のブックマークコメント

制約が書かれてないが,どうせ解ける範囲しか来ないと思って書くと通った.c ≧ 0 のときは全探索して,c < 0 のときは偶数桁の回文数が 11 で割り切れるので n = 1 のときを除いて 999..999 を出力すればよい.

AOJ 0585

| 15:28 | AOJ 0585 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0585 - Wrong Answer -- japlj AOJ 0585 - Wrong Answer -- japlj のブックマークコメント

よくある最近点対のアレ(xでソートして,これまでの最近点対の距離よりxが離れてたら枝を刈る)で通った.

AOJ 0584

| 15:27 | AOJ 0584 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0584 - Wrong Answer -- japlj AOJ 0584 - Wrong Answer -- japlj のブックマークコメント

小さい方から4つだけ分かっていれば求めたい数は分かる.

AOJ 0583

| 15:27 | AOJ 0583 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0583 - Wrong Answer -- japlj AOJ 0583 - Wrong Answer -- japlj のブックマークコメント

それぞれの数の約数を全列挙して unique して公約数になってるかどうか試す,とかしたけど普通に √max まで試し割りでよかったじゃないですかー

AOJ 0582

| 15:26 | AOJ 0582 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0582 - Wrong Answer -- japlj AOJ 0582 - Wrong Answer -- japlj のブックマークコメント

普通に辺の長さを比べましょう.

2013-02-17

AOJ 0591

| 01:54 | AOJ 0591 - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 0591 - Wrong Answer -- japlj AOJ 0591 - Wrong Answer -- japlj のブックマークコメント

多倍長を書いてみようと思ったけど掛け算だけだし大したことはなかった.

2012-05-24

AOJ 2158 Double Sorting

| 02:05 | AOJ 2158 Double Sorting - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 2158 Double Sorting - Wrong Answer -- japlj AOJ 2158 Double Sorting - Wrong Answer -- japlj のブックマークコメント

A*てきとうに書いたら間に合わなかったので嘘枝刈り~

MLE -> MLE -> WA -> WA -> MLE -> AC


Submitデバッグで二分探索する人間の屑

#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<map>
#include<queue>

using namespace std;

typedef long long Int;

struct state {
  Int st;
  int cost, heur1, heur2;
  
  int score() const {
    return cost + max((heur1+1)/2, (heur2+5)/6);
  }
};

bool operator < (const state& a, const state& b)
{
  return a.score() != b.score() ? a.score() > b.score() : a.cost < b.cost;
}

struct cmp_by_state {
  bool operator () (const state& a, const state& b) {
    return a.st < b.st;
  }
};

#define pos(i) ((i)*3)
#define mask(i) (7LL<<pos(i))
#define at(st, i) (((st) & mask(i)) >> pos(i))
#define swp(st, i, j) (((st) & ~(mask(i)|mask(j))) | (at(st,j)<<pos(i)) | (at(st,i)<<pos(j)))
#define check(st, b) (at(st, 2*(b)) > at(st, 2*(b)+1) ? swp(st, 2*(b), 2*(b)+1) : (st))
#define h2(x, y) (((x)==(y)) ? 1 : ((x)>(y) ? 2 : 0))

int N;

int a_star(Int s, Int t)
{
  state first;
  first.st = s;
  first.cost = first.heur1 = first.heur2 = 0;
  
  for(int i=0; i<N; ++i)
    first.st = check(first.st, i);
  
  for(int i=0; i<2*N; ++i)
    first.heur1 += abs(at(first.st, i) - i/2);
  
  for(int i=0; i<2*N; ++i)
    for(int j=i+1; j<2*N; ++j)
      if(i/2 != j/2)
        first.heur2 += h2(at(first.st, i), at(first.st, j));
        
  priority_queue<state> Q;
  map<state, int, cmp_by_state> proc, done;
  Q.push(first);
  proc[first] = first.score();
  Int cA = 0;
  while(!Q.empty()) {
    state n = Q.top(); Q.pop();
    if((++cA) == 14000) return n.score()+1;
    if(n.st == t) return n.cost;
    if(proc.find(n) != proc.end()) proc.erase(n);
    if(done.find(n) != done.end()) continue;
    done[n] = n.score();
    for(int i=0; i<2*N-2; ++i) {
      for(int j=(i%2)?(i+1):(i+2); j/2-i/2==1; ++j) {
        state next = n;
        
        next.heur1 -= abs(at(n.st, i) - i/2) + abs(at(n.st, j) - j/2);
        next.heur1 += abs(at(n.st, i) - j/2) + abs(at(n.st, j) - i/2);
        
        int p = at(n.st, i), q = at(n.st, j);
        int r = at(n.st, i^1), s = at(n.st, j^1);
        next.heur2 -= h2(p, q) + h2(p, s) + h2(r, q);
        next.heur2 += h2(q, p) + h2(q, s) + h2(r, p);
        
        next.st = swp(n.st, i, j);
        next.st = check(next.st, i/2);
        next.st = check(next.st, j/2);
        
        next.cost++;
        
        map<state, int, cmp_by_state>::iterator open = proc.find(next), close = done.find(next);
        bool open_p = (open != proc.end()), close_p = (close != done.end());
        if((!open_p && !close_p)
          || (open_p && open->first.score() > next.score())
          || (close->first.score() > next.score())) {
          Q.push(next);
          proc[next] = next.score();
          if(done.find(next) != done.end()) done.erase(next);
        }
      }
    }
  }
  
  return -1;
}

int main()
{
  while(scanf("%d", &N), N) {
    Int f = 0, goal = 0;
    for(int i=0, t; i<2*N; ++i) {
      scanf("%d", &t);
      f |= (Int)(t-1) << pos(i);
      goal |= (Int)(i>>1) << pos(i);
    }
    printf("%d\n", a_star(f, goal));
  }
  return 0;
}

PawasPawas2012/11/16 17:25If you're looking to buy these articles make it way eaeisr.

nmxraupufnmxraupuf2012/11/16 22:34YqV87z <a href="http://czvuhitduwfv.com/">czvuhitduwfv</a>

rxlymtrxlymt2012/11/18 20:00gqAnxT <a href="http://yvpuhmsldnjl.com/">yvpuhmsldnjl</a>

fmiiewxtvffmiiewxtvf2014/03/19 17:08yxzdbupqdpefs, <a href="http://www.shozpmhyjw.com/">osirzvcwys</a> , [url=http://www.zprwszrkru.com/]ulbjtpxvox[/url], http://www.fpcxcxpqba.com/ osirzvcwys

2012-05-23

AOJ 2280 Mod 3 Knights Out

| 23:40 | AOJ 2280 Mod 3 Knights Out - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 2280 Mod 3 Knights Out - Wrong Answer -- japlj AOJ 2280 Mod 3 Knights Out - Wrong Answer -- japlj のブックマークコメント

探索で間に合うんでは?と気づくまでが面白いところ

AC


#include<cstdio>
#include<algorithm>
 
using namespace std;
 
const int MO = 1000000007;
 
int H, W, F[50][16];
static int dx[] = {-1, +1, +2, +2, +1, -1, -2, -2}, dy[] = {-2, -2, -1, +1, +2, +2, +1, -1};
 
inline bool valid(int y, int x)
{
  return 0<=y && y<H && 0<=x && x<W;
}
 
void add(int y, int x, int v)
{
  for(int i=0; i<8; ++i)
    if(valid(y+dy[i], x+dx[i]))
      (F[y+dy[i]][x+dx[i]] += v) %= 3;
}
 
int search(int y, int x, int mo)
{
  if(y == H) {
    for(int i=max(0, H-3); i<H; ++i)
      for(int j=0; j<W; ++j)
    if((i+j) % 2 != mo && F[i][j] != 0)
      return 0;
    return 1;
  }
  if(x == W) {
    int ok = 1;
    if(y >= 2) {
      for(int j=0; j<W; ++j)
    if((y+j) % 2 != mo && F[y-2][j] != 0)
      ok = 0;
    }
    return ok ? search(y+1, 0, mo) : 0;
  }
  if((y+x) % 2 != mo)
    return search(y, x+1, mo);
 
  int ret = 0;
  if(!valid(y-2, x-1) || F[y-2][x-1] == 0)
    ret += search(y, x+1, mo);
  if(!valid(y-2, x-1) || F[y-2][x-1] == 2) {
    add(y, x, 1);
    ret += search(y, x+1, mo);
    add(y, x, 2);
  }
 
  return ret % MO;
}
 
int main()
{
  scanf("%d%d", &H, &W);
  for(int i=0; i<H; ++i)
    for(int j=0; j<W; ++j)
      scanf("%d", &F[i][j]);
 
  if(H == 1 || W == 1) {
    int sol = 1;
    for(int i=0; i<H; ++i)
      for(int j=0; j<W; ++j)
    sol &= !!(F[i][j] == 0);
    for(int i=0; i<H*W; ++i)
      (sol <<= 1) %= MO;
    printf("%dn", sol);
    return 0;
  }
 
  printf("%dn", (long long)search(0, 0, 0) * search(0, 0, 1) % MO);
  return 0;
}

AOJ 2355 Game

| 23:36 | AOJ 2355 Game - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 2355 Game - Wrong Answer -- japlj AOJ 2355 Game - Wrong Answer -- japlj のブックマークコメント

アルファベータ探索おもろい

WA -> WA -> AC


#include<cstdio>
#include<cstring>
#include<algorithm>
 
using namespace std;
 
const int INF = 1001001001, M = 10000;
int N, F, X[8][8], dp[1<<16][8], dp2[1<<16][8], pc[1<<16];
 
#define win(p) (M-(p))
#define lose(p) (-win(p))
const int draw = 0;
 
int alphabeta(int st, int pr, int cur, int alpha, int beta)
{
  if(pc[st] == 2*N)
    return cur > 0 ? win(2*N) : (cur == 0 ? draw : lose(2*N));
  if((pc[st] & 1) ? (cur-dp[st][pr] > 0) : (cur+dp[st][pr] < 0))
    return (pc[st] & 1) ? win(pc[st]+1) : lose(pc[st]+1);
 
  if(pc[st] & 1) {
    for(int i=0; i<N; ++i) {
      if((st & (1<<(i+N))) == 0)
        beta = min(beta, alphabeta(st|(1<<(i+N)), i, cur-X[pr][i], alpha, beta));
      if(alpha >= beta)
        return alpha;
    }
    return beta;
  } else {
    for(int i=0; i<N; ++i) {
      if((st & (1<<i)) == 0)
        alpha = max(alpha, alphabeta(st|(1<<i), i, cur+(pc[st]==0 ? 0 : X[i][pr]), alpha, beta));
      if(alpha >= beta)
        return beta;
    }
    return alpha;
  }
}
 
int main()
{
  for(int i=0; i<(1<<16); ++i)
    pc[i] = __builtin_popcount(i);
  while(scanf("%d%d", &N, &F), N||F) {
    for(int i=0; i<N; ++i)
      for(int j=0; j<N; ++j)
        scanf("%d", &X[i][j]);
 
    int mask = (1<<(2*N))-1;
    memset(dp[mask], 0, sizeof(dp[mask]));
    memset(dp2[mask], 0, sizeof(dp[mask]));
    for(int i=(1<<(2*N))-2; i>=0; --i) {
      for(int j=0; j<N; ++j) {
        dp[i][j] = -INF;
        dp2[i][j] = INF;
        if(pc[i] & 1) {
          for(int k=0; k<N; ++k) {
            if((i & (1<<(k+N))) == 0) {
              dp[i][j] = max(dp[i][j], X[j][k]-dp2[i|(1<<(k+N))][k]);
              dp2[i][j]= min(dp2[i][j], X[j][k]-dp[i|(1<<(k+N))][k]);
            }
          }
        } else {
          for(int k=0; k<N; ++k) {
            if((i & (1<<k)) == 0) {
              dp[i][j] = max(dp[i][j], (pc[i]==0 ? 0 : X[k][j])-dp2[i|(1<<k)][k]);
              dp2[i][j]= min(dp2[i][j],(pc[i]==0 ? 0 : X[k][j]) -dp[i|(1<<k)][k]);
            }
          }
        }
      }
    }
 
    int res = alphabeta(0, 0, F, -INF, INF);
    if(res > 0)
      printf("First\n%d\n", M-res);
    else if(res == 0)
      printf("Draw\n%d\n", 2*N);
    else
      printf("Second\n%d\n", res+M);
    return 0;
  }
}

AOJ 2391 Billiards Sorting

| 23:35 | AOJ 2391 Billiards Sorting - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 2391 Billiards Sorting - Wrong Answer -- japlj AOJ 2391 Billiards Sorting - Wrong Answer -- japlj のブックマークコメント

がんばって両側探索

もっといい方法あるんかな

TLE -> TLE -> TLE -> TLE -> WA -> AC


#include<cstdio>
#include<map>
#include<algorithm>
 
using namespace std;
 
typedef long long Int;
 
const int LIM = 22, INF = 10000;
 
int N, id[5][5], h[15], swaps[15][4], swc[15], B;
 
map<Int, int> Mp;
map<Int, int> M5;
 
map<Int, int> *M;
 
#define mask(i) (0xfLL << ((B-(i))*4))
 
inline Int swap_ball(Int s, int i, int j)
{
  Int t = s & ~(mask(i) | mask(j));
  t |= ((s & mask(i)) >> ((B-i)*4)) << ((B-j)*4);
  t |= ((s & mask(j)) >> ((B-j)*4)) << ((B-i)*4);
  return t;
}
 
int sol;
 
void search(Int f, int phase, int step, int pos, int prev)
{
  if(phase && M->find(f) != M->end()) {
    sol = min(sol, step + (*M)[f]);
    return;
  }
  if(!phase) {
    if(M->find(f) == M->end()) (*M)[f] = step;
    else (*M)[f] = min((*M)[f], step);
  }
 
  if(step >= (phase ? 45-LIM : LIM)) return;
 
  for(int i=0; i<swc[pos]; ++i) {
    if(swaps[pos][i] == prev || h[swaps[pos][i]] >= N) continue;
    Int next = swap_ball(f, pos, swaps[pos][i]);
    search(next, phase, step+1, swaps[pos][i], pos);
  }
}
 
bool valid(int i, int j)
{
  if(i < 0 || i >= 5) return false;
  if(j < 0 || j > i) return false;
  return true;
}
 
int main()
{
  int k = 0;
  for(int i=0; i<5; ++i)
    for(int j=0; j<=i; ++j)
      id[i][j] = k++;
  k = 0;
  for(int i=0; i<5; ++i) {
    for(int j=0; j<=i; ++j) {
      h[k] = i;
      if(valid(i-1, j-1)) swaps[k][swc[k]++] = id[i-1][j-1];
      if(valid(i-1, j))   swaps[k][swc[k]++] = id[i-1][j];
      if(valid(i+1, j))   swaps[k][swc[k]++] = id[i+1][j];
      if(valid(i+1, j+1)) swaps[k][swc[k]++] = id[i+1][j+1];
      k++;
    }
  }
 
  int pN = -1, CN = 1;
  while(scanf("%d", &N), N) {
    Int st = 0, f = 0;
    int pos;
    B = N*(N+1)/2 - 1;
    for(int i=0, t; i<N*(N+1)/2; ++i) {
      scanf("%d", &t);
      st = (st<<4) | (t-1);
      f = (f<<4) | i;
      if(t == 1) pos = i;
    }
    sol = 50;
    if(N == 5) {
      M = &M5;
      if(M5.size() == 0)
    search(f, 0, 0, 0, -1);
    } else {
      M = &Mp;
      if(N != pN) {
    M->clear();
    search(f, 0, 0, 0, -1);
      }
    }
    search(st, 1, 0, pos, -1);
    printf("Case %d: %d\n", CN++, sol);
    pN = N;
  }
  return 0;
}

ChrverfuraChrverfura2017/05/09 03:40Levitra Prix Belgique Amoxicillin Puppy Dose Order Viagra Usa Pharmacy Zithromax Medication Levitra Natural Alternatives Prix Du Cialis En Suisse <a href=http://byuvaigranonile.com>viagra</a> Buying Soft Cialis On Line Cash On Delivery Stendra Sale 20mg Acheter Levitra Generique Viagra Ingredientes Baclofene Quebec Acheter Du Kamagra En France

2012-05-08

AOJ 1303 Hobby on Rails

| 16:23 | AOJ 1303 Hobby on Rails - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - AOJ 1303 Hobby on Rails - Wrong Answer -- japlj AOJ 1303 Hobby on Rails - Wrong Answer -- japlj のブックマークコメント

5限が始まってしまうのでソースだけ載せておこう

詳細はあとで

実装 66 分 + デバッグ 18 分

バグが少ないのは非常によろしい。丁寧に書いたので実装に時間はかかっているが、同じ程度の丁寧さでもっと速く書きたいところですね。

AC


#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

int w, h;

inline int left(int d) { return (d+3)&3; }
inline int rev(int d) { return (d+2)&3; }
inline int right(int d) { return (d+1)&3; }

static int dx[] = {0, 1, 0, -1}, dy[] = {-1, 0, 1, 0};
char type[8][8];
int dir[8][8], id[8][8], lrx[8], lry[8], done[8], lrs, sol;

int v_time[8][8][2][1<<6], v_phase[8][8][2][1<<6];

void dfs(int y, int x, int from, int st, int phase, int t)
{
  int& vp = v_phase[y][x][from][st], &vt = v_time[y][x][from][st];
  if(phase == vp) {
    sol = max(sol, t - vt);
    return;
  }
  vp = phase; vt = t;

  int ny, nx, nf, ns;
  if(type[y][x] == 'S') {
    int f = from == 0 ? dir[y][x] : rev(dir[y][x]);
    ny = y+dy[rev(f)]; nx = x+dx[rev(f)];
    nf = f; ns = st;
  } else if(type[y][x] == 'C') {
    int nd = from == 0 ? right(dir[y][x]) : dir[y][x];
    ny = y+dy[nd]; nx = x+dx[nd]; nf = rev(nd); ns = st;
  } else if(from == 1) {
    ny = y+dy[dir[y][x]]; nx = x+dx[dir[y][x]];
    nf = rev(dir[y][x]); ns = st;
  } else if(!(st & (1<<id[y][x]))) {
    ny = y+dy[rev(dir[y][x])]; nx = x+dx[rev(dir[y][x])];
    nf = dir[y][x]; ns = st ^ (1<<id[y][x]);
  } else {
    int nd = type[y][x] == 'L' ? right(dir[y][x]) : left(dir[y][x]);
    ny = y+dy[nd]; nx = x+dx[nd]; nf = rev(nd); ns = st ^ (1<<id[y][x]);
  }
  dfs(ny, nx, (dir[ny][nx] == nf ? 0 : 1), ns, phase, t+1);
}

void longest_cycle()
{
  int phase = 1;
  memset(v_phase, 0, sizeof(v_phase));
  for(int i=0; i<lrs; ++i)
    for(int j=0; j<(1<<lrs); ++j)
      for(int k=0; k<2; ++k)
	if(v_phase[lry[i]][lrx[i]][k][j] == 0)
	  dfs(lry[i], lrx[i], k, j, phase++, 0);
}

void adjust(int y, int x, int from, int cur, bool islr)
{
  if(cur == lrs) {
    longest_cycle();
    return;
  }

  if(x < 1 || y < 1 || x > w || y > h) return;

  if(islr) {
    if(cur < 0 || done[cur] == 3) { cur++; y=lry[cur]; x=lrx[cur]; }
    int d = (dir[y][x] + done[cur] * (type[y][x] == 'L' ? 1 : 3)) & 3;
    done[cur]++;
    adjust(y+dy[d], x+dx[d], rev(d), cur, false);
    done[cur]--;
    return;
  }

  if(dir[y][x] >= 0) {
    bool ok = false;
    ok |= (type[y][x] == 'S' && (dir[y][x] == from || dir[y][x] == rev(from)));
    ok |= (type[y][x] == 'C' && (dir[y][x] == from || right(dir[y][x]) == from));
    ok |= (type[y][x] == 'L' && (dir[y][x] != right(from)));
    ok |= (type[y][x] == 'R' && (right(dir[y][x]) != from));
    if(ok) adjust(lry[cur], lrx[cur], -1, cur, true);
    return;
  }

  if(type[y][x] == 'S') {
    dir[y][x] = from;
    adjust(y+dy[rev(from)], x+dx[rev(from)], from, cur, false);
  } else if(type[y][x] == 'C') {
    dir[y][x] = from;
    adjust(y+dy[right(from)], x+dx[right(from)], rev(right(from)), cur, false);
    dir[y][x] = left(from);
    adjust(y+dy[left(from)], x+dx[left(from)], rev(left(from)), cur, false);
  }
  dir[y][x] = -1;
}

int main()
{
  while(scanf("%d%d", &w, &h), w||h) {
    lrs = 0;
    for(int i=1; i<=h; ++i) {
      for(int j=1; j<=w; ++j) {
	char s[2];
	scanf("%s", s);
	type[i][j] = s[0];
	if(s[0] == 'L' || s[0] == 'R') {
	  id[i][j] = lrs;
	  lrx[lrs] = j;
	  lry[lrs] = i;
	  lrs++;
	}
      }
    }
    sol = 0;
    for(int i=0; i<(1<<(2*lrs)); ++i) {
      memset(dir, ~0, sizeof(dir));
      for(int j=0; j<lrs; ++j)
	dir[lry[j]][lrx[j]] = (i >> (2*j)) & 3;
      adjust(lry[0], lrx[0], -1, -1, true);
    }
    printf("%d\n", sol);
  }
  return 0;
}

WilsonWilson2012/11/14 15:53You have the monopoly on useful information-aren't moonpolies illegal? ;)

hrtwwfvhrtwwfv2012/11/15 12:011Bypab <a href="http://scqhjknjqoym.com/">scqhjknjqoym</a>

wdqqopcemwdqqopcem2012/11/16 10:23c8dNAR , [url=http://jutpppbbftxg.com/]jutpppbbftxg[/url], [link=http://okunxvklhmfs.com/]okunxvklhmfs[/link], http://utxxwfjihqfd.com/

pwmmnujjpwmmnujj2012/11/17 00:47iY2ahP <a href="http://pkmemxmongbs.com/">pkmemxmongbs</a>

wnulqxkqewnulqxkqe2012/11/17 20:42v1tgdp , [url=http://hxhhmnpqrrcp.com/]hxhhmnpqrrcp[/url], [link=http://knfmmbzzoqyi.com/]knfmmbzzoqyi[/link], http://watnafbfzjkt.com/

BainogarcicugBainogarcicug2014/01/21 07:41<a href="http://freecialiscialissaleyce.com/#sggo">cialis sale</a> at any time.,Some Internet pharmacies are reputable places to <a href="http://freecialiscialissalestrh.com/#nnlq">cialis dosage</a> to manage symptoms Ensure you maximize the discounts in,Cheap prices for <a href="http://cialisukcialissoftarry.com/#znua">cheap cialis</a>

nxxixydwspnxxixydwsp2014/04/02 18:51hsxlwupqdpefs, http://www.zdaaxxjata.com/ fsnsyuvbhv

vvteuyuwcgvvteuyuwcg2014/04/05 01:07ngcjeupqdpefs, <a href="http://www.yubepoaowx.com/">hzlhfetbmw</a>

ffklmljtgeffklmljtge2014/04/07 08:59kalwoupqdpefs, <a href="http://www.npbochaagt.com/">tmpbtlbjhi</a>

dlzafjelhldlzafjelhl2014/04/10 18:32idosiupqdpefs, http://www.fkpfnlnzmg.com/ dcqastnhxy

linmugxzaclinmugxzac2014/04/12 16:56xcqkwupqdpefs, <a href="http://www.fczmxgrjcn.com/">rttslmpjzj</a> , [url=http://www.lkjzhvsbdx.com/]nqtmwtgefu[/url], http://www.naartkryxa.com/ rttslmpjzj