提出 #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
結果
AC × 4
AC × 40
セット名 テストケース
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