結果
| 問題 | No.5004 Room Assignment | 
| コンテスト | |
| ユーザー |  square1001 | 
| 提出日時 | 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 | 
ソースコード
// 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;
}
            
            
            
        