結果
問題 | No.548 国士無双 |
ユーザー |
![]() |
提出日時 | 2017-07-28 22:47:57 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,333 bytes |
コンパイル時間 | 661 ms |
コンパイル使用メモリ | 73,904 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-17 13:29:22 |
合計ジャッジ時間 | 1,329 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #include <map> #include <numeric> #include <bitset> #include <vector> #include <queue> using namespace std; typedef long long ll; #define FOR(i,a,b) for(ll i = (a); i < (b); i++ ) #define REP(i, n) FOR(i,0,n) typedef pair< ll, ll > cp2; typedef pair< ll, cp2 > cp3; #define fi first #define se second #define sec se.fi #define thr se.se const ll mod = 1000000007; // 123456789 /////////////////////////////////////////////// // // /////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// int N; int cnt[13]; int num2 = 1; int num0 = 1; string out = {'a'}; string S; int ans = 1; int main(){ cin>>S; fill( cnt, cnt+13, 0 ); REP( i, S.size() ){ if( 'm' < S[i] ) ans = 0; else{ cnt[S[i]-'a']++; } } if( ans ){ REP( i, 13 ){ if( cnt[i] == 0 ){ if( num0 ) num0 = 0; else{ ans = 0;} } if( cnt[i] >= 2 ){ if( num2 ) num2 = 0; else{ ans = 0;} } } } if( ans ){ if( num0 && num2 ) printf("a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\n"); else{ REP( i, 13 ) if( !cnt[i] ) out[0]+=i;; cout<<out<<endl; } } else{ puts("Impossible"); } return 0; }