結果
問題 | No.548 国士無双 |
ユーザー |
![]() |
提出日時 | 2019-03-27 14:14:35 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,839 bytes |
コンパイル時間 | 870 ms |
コンパイル使用メモリ | 101,584 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-17 14:56:24 |
合計ジャッジ時間 | 1,591 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
#include <algorithm>#include <cassert>#include <cmath>#include <cstdio>#include <cstring>#include <iomanip>#include <iostream>#include <map>#include <memory>#include <numeric>#include <set>#include <stack>#include <string>#include <vector>#include <functional>#define rep(i,a,b) for(int i=(a);i<(b);++i)#define MOD 1000000007#define int long longusing ll = long long;using namespace std;const int INF = 1LL << 50;using P = pair<int, int>;template <class T>bool chmin(T &a, T b) {if (a > b) {a = b;return true;}else {return false;}}template <class T>bool chmax(T &a, T b) {if (a < b) {a = b;return true;}else {return false;}}struct Setup {Setup() {cin.tie(0);ios::sync_with_stdio(false);cout << fixed << setprecision(20);}} SETUP;signed main() {string s; cin >> s;vector<int> as(26,0);for (auto c : s) {int i = c - 'a';as[i]++;}for (char c = 'n'; c <= 'z'; c++) {if (as[c - 'a'] > 0) {puts("Impossible");return 0;}}int two = 0;int one = 0;int zero = 0;char zero_c = 'a';for(char c = 'a'; c <= 'm'; c++) {int idx = c - 'a';if (as[idx] > 2) {puts("Impossible");return 0;}else if (as[idx] == 2) {two++;}else if (as[idx] == 1) {one++;}else {zero++;zero_c = c;}}if (one == 13) {for (char c = 'a'; c <= 'm'; c++) {cout << c << endl;}}else if (two == 1 && zero == 1) {cout << zero_c << endl;}else {puts("Impossible");}}