PAT B 1041(C ++) - ロングブラシ弟のタイトルパス

1041は試験座席番号(15点)
各PAT候補は、試験時に座席番号2が割り当てられます、試験機はシートであり、シートが試験です。通常の状況下では、入学試験機の最初の候補は、座席番号、試験機への着座状態を得るために、システムは、検査のための候補の座席番号を表示するには、検査候補は、座席を取るためにテストを変更する必要があります。しかし後半、テストマシンが終了したいくつかの候補者は、彼らが唯一の背景からその検査の座席番号を見つける、テスト機は座席番号があなたに回すまし受け取ることができます。

入力フォーマット:
チケット番号試験機試験座席番号の座席番号:最初の行の入力は、N行に続くN(≤1000)整数正、所与の候補情報の各行に与えられます。前記N個の座席に1から番号16ビット数からチケット番号、。誰もが異なっており、もう時間が二人が同じ席に割り当てられていないことを保証するためにチケット番号を入力します。
候補情報の後に、スペースで区切られた行の座席番号照会するM試験機の分析に続いて正の整数M(≤N)を与えます。

出力フォーマット:
クエリに対する各試験機の必要性に対応する座席番号、出力候補チケット番号と座席番号検査に対応する行には、空白で区切られました。

サンプル入力:
4
3,310,120,150,912,233 4 2。
3310120150912119. 4. 1
3,310,120,150,912,126 1. 3。
3310120150912002 2 3
2
3 4。

出力サンプル:
3310120150912002 2
3310120150912119 1

問題解決のアイデア:マップとの戦いに数と改札番号が保存され、テストマシンの数と、テスト数に応じて、チケット番号を読み出し、最終的な出力が可能

#include<iostream>
#include<cstdio>
#include<string>
#include<map>
using namespace std;
int k[1000];
string n[1000];
int main(){
	int num = 0,tryNum=0,seatNum=0,num2=0;
	map<int,string> stuMap;
	string line;
	cin >> num;
	for (int i = 0; i < num; i++){
		cin>>line>>tryNum>>seatNum;
		stuMap[tryNum] = line+","+to_string(seatNum);
	}
	cin >> num2;
	for (int i = 0; i < num2; i++){
		cin >> k[i];
		n[i]= stuMap[k[i]];
	}
	for (int i = 0; i < num2; i++){
		int index = n[i].find(",");
		string x = n[i].substr(0, index);
		string y = n[i].substr(index + 1);
		cout << x << " " << y<<endl;
	}
	return 0;
}
发布了46 篇原创文章 · 获赞 0 · 访问量 579

おすすめ

転載: blog.csdn.net/qq_23079139/article/details/104102402