結果
問題 | No.123 カードシャッフル |
ユーザー |
![]() |
提出日時 | 2019-05-13 07:38:07 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 12 ms / 5,000 ms |
コード長 | 873 bytes |
コンパイル時間 | 243 ms |
コンパイル使用メモリ | 30,208 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-06 13:22:26 |
合計ジャッジ時間 | 843 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 10 |
コンパイルメッセージ
main.c: In function 'in': main.c:7:14: warning: implicit declaration of function 'getchar_unlocked' [-Wimplicit-function-declaration] 7 | #define gc() getchar_unlocked() | ^~~~~~~~~~~~~~~~ main.c:13:24: note: in expansion of macro 'gc' 13 | int n = 0, c = gc(); | ^~
ソースコード
// yukicoder: No.123 カードシャッフル// 2019.5.13 bal4u#include <stdio.h>#if 1#define gc() getchar_unlocked()#else#define gc() getchar()#endifint in(){int n = 0, c = gc();do n = 10*n + (c & 0xf), c = gc(); while (c >= '0');return n;}typedef struct { int id, prev, next; } T;T t[52];int top, end;int res;void card(int n) {int i;for (i = 0; i < n; i++) t[i].id = i+1, t[i].prev = i-1, t[i].next = i+1;top = 0, end = n-1, res = 1;}void shuffle(int a) {int k, p, n;if (a == 1) return;k = top; while (--a) k = t[k].next;res = t[k].id, p = t[k].prev, n = t[k].next;if (k != end) t[p].next = n, t[n].prev = p;else end = p;t[k].next = top, t[top].prev = k, top = k;}int main(){int N, M;N = in();if (N == 1) { puts("1"); return 0; }card(N);M = in(); while (M--) shuffle(in());printf("%d\n", res);return 0;}