結果
問題 | No.267 トランプソート |
ユーザー |
![]() |
提出日時 | 2021-02-03 14:05:11 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 1,000 ms |
コード長 | 4,500 bytes |
コンパイル時間 | 245 ms |
コンパイル使用メモリ | 32,512 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-30 01:10:27 |
合計ジャッジ時間 | 885 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <limits.h>#include <ctype.h>#include <math.h>// Yukicoder №267 トランプソート// https://yukicoder.me/problems/no/267// ***********************// for debug#define DEBUG7#define NOP do{}while(0)#ifdef DEBUG#define TRACE(...) do{printf(__VA_ARGS__);fflush(stdout);}while(0)#define TRACECR do{printf("\n");fflush(stdout);}while(0)#else#define TRACE(...) NOP#define TRACECR NOP#endif#define PRINCR printf("\n")#define NOCR(strig) do{char *p;p=strchr(strig,'\n');if(p)*p='\0';}while(0)// The out-of-date function#define asctime(...) asctime_s(...)#define ctime(...) ctime_s(...)#define strlen(a) mystr_len(a)//#define fopen(...) fopen_s(...)//#define freopen(...) freopen_s(...)//#define rewind(a) fseek(a,0L,SEEK_SET)//#define setbuf(a,b) setvbuf(a,b,_IOFBF,BUFSIZ)// for stdio#define INPUT(str) do{char *p;fgets(str,sizeof(str),stdin);p=strchr(str,'\n');if(p)*p='\0';}while(0)#define mygc(c) (c)=getchar()static char *getinput( char* str );static char *getinput(char* str) {char c;char *cp;cp=&str[0];c=fgetc(stdin);while( c != EOF ){if((c==' ')||( c=='\n')) break;*cp++=c;c=fgetc(stdin);}*cp='\0';return &str[0];}static int max(int a,int b){if(a>b){return a;}return b;}static int min(int a,int b){if(a<b){return a;}return b;}// for readailitytypedef long long lolong;const int INF = 1e9;const int MOD = 1e9+7;const lolong LINF = 1e18;#define PI ((double)3.141592653589793238462643383279)#define YES(a) printf("%s",((a)?"YES":"NO"))#define Yes(a) printf("%s",((a)?"Yes":"No"))#define OK(a) printf("%s",((a)?"OK":"NG"))#define Ok(a) printf("%s",((a)?"Ok":"Ng"))#define POSSIBLE(a) printf("%s",((a)?"POSSIBLE":"IMPOSSIBLE"))#define Possible(a) printf("%s",((a)?"Possible":"Impossible"))#define SWAP(type,a,b) do{type _c;_c=a;a=b;b=_c;}while(0)#define REP(a,b) for(int a=0;a<(int)(b);++a)#define REP1(a,b) for(int a=1;a<=(b);++a)#define FLOOP(a,b) for(a=0;a<(b);++a)#define FLOOP1(a,b) for(a=1;a<=(b);++a)#define ABS(c) ((c)<0?(-(c)):(c))#define LSB(i) ((i) & -(i))#define INPBUF (250+2)#define data_s int// ***********************// ***********************static int cmpint_asc(const void *a,const void *b){if(*(int *)a>*(int *)b){return 1;}if(*(int *)a==*(int *)b){return 0;}return -1;}static int cmpint_desc(const void *a,const void *b){if(*(int *)a<*(int *)b){return 1;}if(*(int *)a==*(int *)b){return 0;}return -1;}static int cmpchar_asc(const void *a,const void *b){if(*(char *)a>*(char *)b){return 1;}if(*(char *)a==*(char *)b){return 0;}return -1;}static int cmpchar_desc(const void *a,const void *b){if(*(char *)a<*(char *)b){return 1;}if(*(char *)a==*(char *)b){return 0;}return -1;}static int mystr_len(char *str){int i=0;do{if(str[i]=='\0')break;i++;if(i>9999)break;}while(1);return i;}static int countchar(char str[],char c,int limit ) {int cnt = 0;for(int i=0;i<limit;i++) if( str[i] == c )cnt++;return cnt;}// ***********************typedef struct HOGE {int num;char str[3];} CARD_t;// ***********************// ***********************// ***********************// ***********************// ***********************// 外部変数// ***********************// ***********************// ***********************int cmpcards( const void *ap, const void *bp ) {int a,b;CARD_t *d;d =(CARD_t*)ap;a = d->num;d =(CARD_t*)bp;b = d->num;#if 0// 1 is 降順 5 4 3 2 1if( a > b ) return -1;else if( a < b ) return 1;else return 0;#else// 0 is 昇順 1 2 3 4 5if( a < b ) return -1;else if( a > b ) return 1;else return 0;#endif}// ***********************int main() {char str[INPBUF];int query;CARD_t cards[60];int val;INPUT( str );sscanf( str,"%d", &query );REP(i,query) {getinput( str );switch( str[0] ) {case 'D':val = 100;break;case 'C':val = 200;break;case 'H':val = 300;break;case 'S':val = 400;break;}switch( str[1] ) {case 'A':val += 1;break;case 'T':val += 10;break;case 'J':val += 11;break;case 'Q':val += 12;break;case 'K':val += 13;break;default:val += (str[1] - '0');}cards[i].num = val;cards[i].str[0] = str[0];cards[i].str[1] = str[1];cards[i].str[2] = '\0';}qsort( cards , query, sizeof( cards[0] ), cmpcards );REP(i,query) {if(i) printf(" ");printf("%s", cards[i].str );}return 0;}