September Cook-Off 2012 CARVANS : Carvans

問題概要

長さN(<1e4)の数列が与えられる。自分より前に自分より小さい数が存在するのはいくつあるか求める問題。

解法

前から順に最小値を覚えておく。

acceptされたコード

const int MAX_N = 10000;

int N;
int as[MAX_N];

void init() {
	scanf("%d", &N);
	for (int i = 0; i < N; ++i) {
		scanf("%d", as + i);
	}
}

int solve() {
	int ans = 0;
	int mini = 0x7fffffff;
	for (int i = 0; i < N; ++i) {
		if (updateMin(mini, as[i])) {
			++ans;
		}
	}
	return ans;
}