結果
問題 | No.539 インクリメント |
ユーザー |
![]() |
提出日時 | 2019-05-02 07:23:24 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 16 ms / 2,000 ms |
コード長 | 1,038 bytes |
コンパイル時間 | 382 ms |
コンパイル使用メモリ | 31,232 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 13:05:49 |
合計ジャッジ時間 | 2,141 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 3 |
コンパイルメッセージ
main.c: In function 'in': main.c:8:14: warning: implicit declaration of function 'getchar_unlocked' [-Wimplicit-function-declaration] 8 | #define gc() getchar_unlocked() | ^~~~~~~~~~~~~~~~ main.c:16:24: note: in expansion of macro 'gc' 16 | int n = 0, c = gc(); | ^~ main.c: In function 'outs': main.c:9:15: warning: implicit declaration of function 'putchar_unlocked' [-Wimplicit-function-declaration] 9 | #define pc(c) putchar_unlocked(c) | ^~~~~~~~~~~~~~~~ main.c:30:33: note: in expansion of macro 'pc' 30 | void outs(char *s) { while (*s) pc(*s++); } | ^~
ソースコード
// yukicoder: No.539 インクリメント// 2019.4.20 bal4u#include <stdio.h>#include <ctype.h>#if 1#define gc() getchar_unlocked()#define pc(c) putchar_unlocked(c)#else#define gc() getchar()#define pc(c) putchar(c)#endifint in(){int n = 0, c = gc();do n = 10 * n + (c & 0xf), c = gc(); while (c >= '0');return n;}int ins(char *s){char *p = s;do *s = gc();while (*s++ >= ' ');*--s = 0;return s - p;}void outs(char *s) { while (*s) pc(*s++); }char S[100015];int main(){int T, f, c;char *p, *q;T = in(); while (T--) {p = S + ins(S) - 1;while (p >= S && !isdigit(*p)) p--;if (p < S) { outs(S), pc('\n'); continue; } // 数字がないケースf = 0, q = p; while (q >= S && isdigit(*q)) {if (*q != '9') break;q--, f++;}if (q >= S) {if (!isdigit(*q)) {q++;c = *q, *q = 0, outs(S), *q = c;pc('1');} else {c = *q, *q = 0, outs(S), *q = c;pc(c+1);}} else pc('1');while (f--) pc('0');outs(p+1);pc('\n');}return 0;}