BOJ-15235オリンピッサ(C++)

6399 ワード

質問元:https://www.acmicpc.net/problem/15235

問題の難易度


Silver 5

問題の処理方法


queueを適当に使えばいい!

パスコード

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

int main() {
	int N;
	cin >> N;
	queue<pair<int,int>> q;
	for (int i = 0; i < N; i++) {
		int x;
		cin >> x;
		q.push({ x,i });
	}
	vector<int> ans(N);
	int cnt = 1;
	while (!q.empty()) {
		int x = q.front().first;
		int idx = q.front().second;
		q.pop();
		x--;
		if (x == 0) {
			ans[idx] = cnt;
		}
		else q.push({ x,idx });
		cnt++;
	}
	for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
	return 0;
}

Etc


初めて見たときの正解率が95%だったのはいったい何の問題なのか95%?作りながら解けました.もともと提出する人も少なくて、しかし提出する人はすべて打たれるので、だからやっとそのようにして、ほほほ