結果
| 問題 |
No.539 インクリメント
|
| コンテスト | |
| ユーザー |
myanta
|
| 提出日時 | 2017-06-30 23:07:27 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 9 ms / 2,000 ms |
| コード長 | 586 bytes |
| コンパイル時間 | 372 ms |
| コンパイル使用メモリ | 24,192 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-04 21:11:37 |
| 合計ジャッジ時間 | 1,336 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 3 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:52:30: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
52 | scanf("%100000[^\n]\n", s);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~
ソースコード
#include<cstdio>
#include<cstring>
#include<cctype>
char *levelup(char *s)
{
int l=strlen(s);
int i;
for(i=l-1;i>=0;i--)
{
if(isdigit(s[i])) break;
}
if(i<0) return s;
int c=1;
for(;i>=0 && c;i--)
{
if(!isdigit(s[i])) break;
if(s[i]=='9')
{
s[i]='0';
c=1;
}
else
{
s[i]++;
c=0;
}
}
if(c)
{
memmove(s+i+1, s+i, l-i+1);
s[i+1]='1';
}
return s;
}
int main(void)
{
int t;
while(scanf("%d\n", &t)==1)
{
char s[100000+3];
for(int i=0;i<t;i++)
{
scanf("%100000[^\n]\n", s);
printf("%s\n", levelup(s));
}
}
return 0;
}
myanta