Submission #41346


Source Code Expand

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;

#define REPN(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define REP(i, n) REPN(i, 0, n)
#define FOR(i, c) for(__typeof((c).begin()) i = (c).begin(); i != (c).end(); i++)
#define ALL(v) (v).begin(), (v).end()

char buf[1000];
char suit_[] = "SHDC";

bool check(bool f[]) {
  return f['1'] && f['J'] && f['Q'] && f['K'] && f['A'];
}

int main() {

  gets(buf);
  int len = strlen(buf);
  char cards[4][1000];

  int min_drop = 1000000, idx = -1;  
  bool flags[256] = {false};
  
  for(int st = 0; st < 4; st++) {
    char suit = suit_[st];
    int t = 0;
    memset(flags, false, sizeof(flags));

    int drop = 0;
    for(int p = 0; p < len; ) {

      if(buf[p] != suit) {
        drop++;
        if(buf[p + 1] == '1') {
          cards[st][t] = buf[p];
          cards[st][t + 1] = buf[p + 1];
          cards[st][t + 2] = buf[p + 2];
          t += 3; p += 3;
        } else {
          cards[st][t] = buf[p];
          cards[st][t + 1] = buf[p + 1];
          t += 2; p += 2;
        }
      }else{
        if(buf[p + 1] == '1' ||
           buf[p + 1] == 'J' ||
           buf[p + 1] == 'Q' ||
           buf[p + 1] == 'K' ||
           buf[p + 1] == 'A') {

          flags[(int)buf[p + 1]] = true;
          if(check(flags)) break;
          p += buf[p + 1] == '1' ? 3 : 2;
          
        } else {
          drop++;
          cards[st][t] = suit;
          cards[st][t + 1] = buf[p + 1];
          t += 2; p += 2;
        }
        
      }
    }

    cards[st][t] = 0;
    // printf("%c drop=%d %s\n", suit, drop, cards[st]);

    if(drop < min_drop) {
      min_drop = drop;
      idx = st;
    }
  }

  puts(min_drop <= 0 ? "0" : cards[idx]);

  return 0;
}

Submission Info

Submission Time
Task B - ロイヤルストレートフラッシュ
User miya
Language C++ (G++ 4.6.4)
Score 100
Code Size 1858 Byte
Status AC
Exec Time 26 ms
Memory 816 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:21:12: warning: ignoring return value of ‘char* gets(char*)’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 72
Set Name Test Cases
All 00_sample1, 00_sample2, 10_input00, 10_input01, 10_input02, 10_input03, 10_input04, 10_input05, 10_input06, 10_input07, 10_input08, 10_input09, 10_input10, 10_input11, 10_input12, 10_input13, 10_input14, 10_input15, 10_input16, 10_input17, 10_input18, 10_input19, 10_input20, 10_input21, 10_input22, 10_input23, 10_input24, 10_input25, 10_input26, 10_input27, 10_input28, 10_input29, 10_input30, 10_input31, 10_input32, 10_input33, 10_input34, 10_input35, 10_input36, 10_input37, 10_input38, 10_input39, 10_input40, 10_input41, 10_input42, 10_input43, 10_input44, 10_input45, 10_input46, 10_input47, 10_input48, 10_input49, 10_input50, 10_input51, 10_input52, 10_input53, 10_input54, 10_input55, 10_input56, 10_input57, 10_input58, 10_input59, 10_input60, 10_input61, 10_input62, 10_input63, 10_input64, 10_input65, 10_input66, 10_input67, 10_input68, 10_input69
Case Name Status Exec Time Memory
00_sample1 AC 20 ms 664 KiB
00_sample2 AC 19 ms 704 KiB
10_input00 AC 20 ms 692 KiB
10_input01 AC 19 ms 816 KiB
10_input02 AC 19 ms 696 KiB
10_input03 AC 19 ms 668 KiB
10_input04 AC 19 ms 660 KiB
10_input05 AC 19 ms 688 KiB
10_input06 AC 19 ms 660 KiB
10_input07 AC 20 ms 700 KiB
10_input08 AC 20 ms 688 KiB
10_input09 AC 20 ms 648 KiB
10_input10 AC 19 ms 680 KiB
10_input11 AC 19 ms 696 KiB
10_input12 AC 18 ms 660 KiB
10_input13 AC 20 ms 672 KiB
10_input14 AC 19 ms 660 KiB
10_input15 AC 19 ms 664 KiB
10_input16 AC 19 ms 660 KiB
10_input17 AC 20 ms 692 KiB
10_input18 AC 20 ms 684 KiB
10_input19 AC 19 ms 648 KiB
10_input20 AC 20 ms 700 KiB
10_input21 AC 20 ms 664 KiB
10_input22 AC 19 ms 660 KiB
10_input23 AC 20 ms 684 KiB
10_input24 AC 19 ms 660 KiB
10_input25 AC 20 ms 692 KiB
10_input26 AC 19 ms 664 KiB
10_input27 AC 20 ms 676 KiB
10_input28 AC 19 ms 696 KiB
10_input29 AC 20 ms 676 KiB
10_input30 AC 19 ms 692 KiB
10_input31 AC 20 ms 696 KiB
10_input32 AC 20 ms 660 KiB
10_input33 AC 20 ms 668 KiB
10_input34 AC 20 ms 692 KiB
10_input35 AC 20 ms 676 KiB
10_input36 AC 19 ms 692 KiB
10_input37 AC 20 ms 636 KiB
10_input38 AC 19 ms 664 KiB
10_input39 AC 20 ms 768 KiB
10_input40 AC 19 ms 696 KiB
10_input41 AC 19 ms 696 KiB
10_input42 AC 19 ms 676 KiB
10_input43 AC 18 ms 656 KiB
10_input44 AC 18 ms 660 KiB
10_input45 AC 19 ms 692 KiB
10_input46 AC 20 ms 668 KiB
10_input47 AC 20 ms 696 KiB
10_input48 AC 20 ms 664 KiB
10_input49 AC 20 ms 688 KiB
10_input50 AC 20 ms 688 KiB
10_input51 AC 18 ms 660 KiB
10_input52 AC 20 ms 696 KiB
10_input53 AC 26 ms 692 KiB
10_input54 AC 19 ms 692 KiB
10_input55 AC 19 ms 700 KiB
10_input56 AC 18 ms 668 KiB
10_input57 AC 20 ms 668 KiB
10_input58 AC 20 ms 700 KiB
10_input59 AC 19 ms 660 KiB
10_input60 AC 19 ms 688 KiB
10_input61 AC 20 ms 692 KiB
10_input62 AC 20 ms 664 KiB
10_input63 AC 20 ms 688 KiB
10_input64 AC 20 ms 664 KiB
10_input65 AC 20 ms 660 KiB
10_input66 AC 19 ms 680 KiB
10_input67 AC 19 ms 684 KiB
10_input68 AC 19 ms 684 KiB
10_input69 AC 19 ms 676 KiB