結果
| 問題 |
No.123 カードシャッフル
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-05-13 07:29:55 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 868 bytes |
| コンパイル時間 | 243 ms |
| コンパイル使用メモリ | 29,952 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-06 13:13:19 |
| 合計ジャッジ時間 | 976 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 8 WA * 2 |
コンパイルメッセージ
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()
#endif
int 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;
t[k].next = top, t[top].prev = k;
top = k, end = p;
}
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;
}
bal4u