提出 #18079271
ソースコード 拡げる
/*
after dusk passed,
there is a starry sky.
*/
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define m_k make_pair
using namespace std;
const int N=5*1e5+100;
int n,h,t,cnt[N],kind[N],w;
char s[N];
inline int read()
{
int f=1,x=0;char s=getchar();
while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
return x*f;
}
signed main()
{
scanf("%s",s+1);
n=strlen(s+1);
for (int i=1;i<=n;)
{
int j=i;
while(j<=n&&s[i]==s[j]) j++;
w++;
cnt[w]=j-i,kind[w]=s[i]-'0';
i=j;
}
h=1,t=w;
int ans=0,last=1;
while (last<=t)
{
ans++;
kind[t+1]=-1;
bool bl=1;
for (int i=last;i<t;i++)
{
if (kind[i]>kind[i+1])
{
bl=0;
last=i;
break;
}
}
if (bl) break;
cnt[last]--;
if (!cnt[last]) last++;
if (last>t) break;
if (last==t&&kind[last]==9)
{
ans+=2;
break;
}
if (kind[t]==9)
{
int now=cnt[t];
if (cnt[t-1]==1)
{
kind[t-1]++,kind[t]=0;
if (last<t-1&&kind[t-2]==kind[t-1])
{
cnt[t-2]+=cnt[t-1];
kind[t-1]=kind[t];
cnt[t-1]=cnt[t];
t--;
}
}
else cnt[t-1]--,cnt[t]=1,kind[t]=kind[t-1]+1,cnt[++t]=now,kind[t]=0;
}
else
{
if (cnt[t]==1)
{
kind[t]++;
if (last<t&&kind[t]==kind[t-1]) cnt[t-1]+=cnt[t],t--;
}
else cnt[t]--,cnt[++t]=1,kind[t]=kind[t-1]+1;
}
}
printf("%d\n",ans);
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Increasing Numbers |
| ユーザ | SevenDawns |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 1300 |
| コード長 | 1439 Byte |
| 結果 | AC |
| 実行時間 | 17 ms |
| メモリ | 7848 KiB |
コンパイルエラー
./Main.cpp: In function ‘int main()’:
./Main.cpp:21:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
21 | scanf("%s",s+1);
| ~~~~~^~~~~~~~~~
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1300 / 1300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| All | sample1.txt, sample2.txt, sample3.txt, sample4.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in4.txt, in5.txt, in500000.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| in1.txt | AC | 9 ms | 3724 KiB |
| in10.txt | AC | 12 ms | 4164 KiB |
| in11.txt | AC | 6 ms | 4024 KiB |
| in12.txt | AC | 6 ms | 4316 KiB |
| in13.txt | AC | 11 ms | 4028 KiB |
| in14.txt | AC | 9 ms | 4028 KiB |
| in15.txt | AC | 8 ms | 4100 KiB |
| in16.txt | AC | 12 ms | 4228 KiB |
| in17.txt | AC | 5 ms | 4196 KiB |
| in18.txt | AC | 16 ms | 7600 KiB |
| in19.txt | AC | 14 ms | 7600 KiB |
| in2.txt | AC | 16 ms | 7600 KiB |
| in20.txt | AC | 7 ms | 4224 KiB |
| in21.txt | AC | 13 ms | 7656 KiB |
| in22.txt | AC | 16 ms | 7776 KiB |
| in23.txt | AC | 14 ms | 7848 KiB |
| in24.txt | AC | 11 ms | 4332 KiB |
| in25.txt | AC | 16 ms | 4028 KiB |
| in26.txt | AC | 14 ms | 7648 KiB |
| in27.txt | AC | 12 ms | 6544 KiB |
| in28.txt | AC | 16 ms | 7728 KiB |
| in29.txt | AC | 15 ms | 7664 KiB |
| in3.txt | AC | 13 ms | 7584 KiB |
| in30.txt | AC | 13 ms | 7592 KiB |
| in31.txt | AC | 17 ms | 7728 KiB |
| in4.txt | AC | 16 ms | 7536 KiB |
| in5.txt | AC | 5 ms | 4272 KiB |
| in500000.txt | AC | 5 ms | 4260 KiB |
| in6.txt | AC | 15 ms | 7728 KiB |
| in7.txt | AC | 13 ms | 7076 KiB |
| in8.txt | AC | 8 ms | 4260 KiB |
| in9.txt | AC | 13 ms | 4264 KiB |
| sample1.txt | AC | 2 ms | 3780 KiB |
| sample2.txt | AC | 2 ms | 3736 KiB |
| sample3.txt | AC | 7 ms | 3728 KiB |
| sample4.txt | AC | 2 ms | 3736 KiB |