結果
問題 | No.832 麻雀修行中 |
ユーザー |
![]() |
提出日時 | 2019-05-31 01:11:44 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,575 bytes |
コンパイル時間 | 617 ms |
コンパイル使用メモリ | 85,244 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-17 16:10:30 |
合計ジャッジ時間 | 1,589 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 25 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:88:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 88 | scanf("%s", s); | ~~~~~^~~~~~~~~
ソースコード
/* -*- coding: utf-8 -*-** 832.cc: No.832 麻雀修行中 - yukicoder*/#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<string>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<deque>#include<algorithm>#include<numeric>#include<utility>#include<complex>#include<functional>using namespace std;/* constant */const int MAX_N = 100;const int INF = 1 << 30;const long long LINF = 1LL << 60;/* typedef */typedef long long ll;typedef vector<int> vi;typedef queue<int> qi;typedef pair<int,int> pii;/* global variables */char s[16];int ps[9];/* subroutines */bool rec(int u) {while (u < 9 && ! ps[u]) u++;if (u >= 9) return true;if (u < 7 && ps[u + 1] && ps[u + 2]) {ps[u]--; ps[u + 1]--; ps[u + 2]--;bool tf = rec(u);ps[u]++; ps[u + 1]++; ps[u + 2]++;if (tf) return true;}if (ps[u] >= 3) {ps[u] -= 3;bool tf = rec(u);ps[u] += 3;if (tf) return true;}return false;}bool check() {int n2 = 0;for (int i = 0; i < 9; i++)if (ps[i] == 2) n2++;if (n2 == 7) return true;for (int h = 0; h < 9; h++)if (ps[h] >= 2) {ps[h] -= 2;bool tf = rec(0);ps[h] += 2;if (tf) return true;}return false;}/* main */int main() {scanf("%s", s);for (int i = 0; s[i]; i++) ps[s[i] - '1']++;for (int a = 0; a < 9; a++)if (ps[a] < 4) {ps[a]++;if (check()) printf("%d\n", a + 1);ps[a]--;}return 0;}