結果

問題 No.5004 Room Assignment
ユーザー square1001square1001
提出日時 2021-12-01 00:11:45
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 138 ms / 5,000 ms
コード長 1,075 bytes
コンパイル時間 692 ms
実行使用メモリ 22,352 KB
スコア 75,613,374
平均クエリ数 7650.00
最終ジャッジ日時 2021-12-01 00:12:07
合計ジャッジ時間 17,847 ms
ジャッジサーバーID
(参考情報)
judge11 / judge10
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 100
権限があれば一括ダウンロードができます

ソースコード

diff #

// NOT YET DEBUGGED

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
	int T; // T = 3600
	int R; // R = 4
	cin >> T >> R;
	vector<int> P, S;
	vector<int> rem;
	for (int iteration = 0; iteration < T; ++iteration) {
		int subn;
		cin >> subn;
		for (int j = 0; j < subn; ++j) {
			int x;
			cin >> x;
			P.push_back(iteration);
			S.push_back(x);
			rem.push_back(int(P.size()) - 1);
		}
		if ((iteration + 1) % 100 == 0) {
			sort(rem.begin(), rem.end(), [&](int j, int k) { return S[j] < S[k]; });
			vector<int> qu, qv;
			while (int(rem.size()) >= 4) {
				int v1 = rem.back(); rem.pop_back();
				int v2 = rem.back(); rem.pop_back();
				int v3 = rem.back(); rem.pop_back();
				int v4 = rem.back(); rem.pop_back();
				qu.push_back(v1); qv.push_back(v2);
				qu.push_back(v1); qv.push_back(v3);
				qu.push_back(v1); qv.push_back(v4);
			}
			cout << qu.size() << endl;
			for (int i = 0; i < int(qu.size()); ++i) {
				cout << qu[i] + 1 << ' ' << qv[i] + 1 << endl;
			}
		}
		else {
			cout << 0 << endl;
		}
	}
	return 0;
}
0