【AOJ 2242】Era Name
問題
方針
- EraBasedYearとWesternYearが入力し, それらをs(start), e(end)という変数に代入.
- queryが ]にはいってるとき, が答え.
- 当てはまらない時はUnknownとなる.
コード
#include <iostream> #include <vector> #include <algorithm> using namespace std; #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i = a ; i < (int)n ; i++) struct YEAR{ string _en; int s, e; YEAR(string en, int eby, int wy){ _en = en; s = wy - eby; e = wy; } bool operator < (const YEAR& another) const { return s < another.s; } }; vector<YEAR> v; string getEraBasedYear(int query){ rep(i, v.size()){ if(v[i].s < query && query <= v[i].e){ return (v[i]._en + " " + to_string(query-v[i].s)); } } return "Unknown"; } signed main(){ int n, q, eby, wy, query; string en; while(cin >> n >> q, n||q){ v.clear(); rep(i,n){ cin >> en >> eby >> wy; v.push_back(YEAR(en, eby, wy)); } sort(v.begin(), v.end()); rep(i,q){ cin >> query; cout << getEraBasedYear(query) << endl; } } }
残ってるAOJ−ICPCの200問題が全部英語なのでつらい. 誤読祭り.