Hatena::Grouptopcoder

nodchipのTopCoder日記 このページをアンテナに追加 RSSフィード

 | 

2011-09-24

Codeforces Beta Round #88 10:51 Codeforces Beta Round #88 - nodchipのTopCoder日記 を含むブックマーク はてなブックマーク - Codeforces Beta Round #88 - nodchipのTopCoder日記 Codeforces Beta Round #88 - nodchipのTopCoder日記 のブックマークコメント

ミスによりしょんぼりな結果に・・・

A - Elevator

  • 面倒そう・・・
  • とりあえずs=fの場合を場合分けしておく
  • それ以外の場合はエレベーターの何往復目で乗れるかを考える
  • これはエレベーターの周期からだいたい求まる
  • 乗りそこねたら次の往復まで待てば良い
  • これを上り下りについて考えば良い
  • Accepted
int main() {
	int N, M;
	cin >> N >> M;
	REP(n, N) {
		int s, f, t;
		cin >> s >> f >> t;
		--s;
		--f;
		
		if (s == f) {
			cout << t << endl;
			continue;
		}

		int turn = t / (2 * (M - 1));
		if (s < f) {
			// 上り
			if (t <= turn * (2 * (M - 1)) + s) {
				cout << turn * (2 * (M - 1)) + f << endl;
			} else {
				cout << (turn + 1) * (2 * (M - 1)) + f << endl;
			}
		} else {
			// 下り
			if (t <= turn * (2 * (M - 1)) + (2 * (M - 1)) - s) {
				cout << turn * (2 * (M - 1)) + (2 * (M - 1)) - f << endl;
			} else {
				cout << (turn + 1) * (2 * (M - 1)) + (2 * (M - 1)) - f << endl;
			}
		}
	}
}

B - Very Interesting Game

  • パッと見で思いつかない
  • aで回してa * 1000000000以上のmodで割り切れる数を調べれば良い・・・?
  • TLEするよなぁ
  • ・・・
  • modまで回せば良い?
  • きっと周期があるからそうだよね・・・?
  • これ見よがしにmodが10^7までだし
  • Hacked
  • あ・・・
  • ちょこっと修正
  • Time limit exceeded on test 24
  • げ・・・
  • orz
  • aとmodのminまで回せば良かったらしいorz
static const ll NINE = 1000000000;

int main() {
	ll a, b, mod;
	cin >> a >> b >> mod;
	for (ll i = 0; i <= min(a, mod); ++i) {
		ll minValue = (i * NINE + mod - 1) / mod * mod;
		if (minValue % NINE <= b) {
			continue;
		}

		printf("1 %09d\n", (int)i);
		return 0;
	}

	cout << 2 << endl;
}

C - Cycle

  • 分かりませんでした

D - Not Quick Transformation

  • とりあえず書いてみた
  • 問題を勘違いしていたことが判明・・・
  • orz

E - Tree or not Tree

  • 読んでいません

Hack

  • 何もしませんでした

System Test

#Who=ABCDE
350nodchip476 476 00:12-2 -1
トラックバック - http://topcoder.g.hatena.ne.jp/nodchip/20110924
 |