いつの間にかできていた #chokudai今日の一問
記念すべき1問目は,多分これ.
緑の人がこの辺の問題を解けてないのを見ると、「こいつら実装力あるって言って大丈夫か」って思っちゃう部分もある。数学的な思考力があれば、実装力が全然なくても到達できちゃうのが緑、という側面はあるのよね。https://t.co/MryU1zLy6Q
— chokudai(高橋 直大)🍆🍡🌸 (@chokudai) August 19, 2019
ABC113 C - ID
素直に実装する.
前回解いたときは,sprintf()
とかその辺でハマった気がするけど,今回はvector 2個作って printf()
すればいいということに途中で気づいた.
#include <algorithm> #include <cmath> #include <cstdio> #include <iomanip> #include <iostream> #include <map> #include <queue> #include <sstream> #include <string> using namespace std; static int N, M; typedef pair<long long, int> City; static vector<vector<City>> P; void solve() { vector<int> id1(M + 1); vector<int> id2(M + 1); for (int i = 1; i < N + 1; i++) { sort(P[i].begin(), P[i].end()); for (int j = 1; j < P[i].size(); j++) { id1[P[i][j].second] = i; id2[P[i][j].second] = j; } } for (int i = 1; i < M + 1; i++) { printf("%06d%06d\n", id1[i], id2[i]); } } int main() { cin >> N >> M; P.resize(N + 1); for (int i = 0; i < N + 1; i++) { vector<City> v(1); P[i] = v; } for (int i = 0; i < M; i++) { int p; long long y; cin >> p >> y; P[p].push_back(City(y, i + 1)); } solve(); return 0; }