提出 #68195615


ソースコード 拡げる

#include<stdio.h>
// inline char nc()
// {
// 	static char*l,*r,buf[99999];
// 	return l==r&&(r=(l=buf)+fread(buf,1,99999,stdin),l==r)?EOF:*l++;
// }
#define nc getchar
inline void read(int&x)
{
	char c=nc();for(;c<'0'||'9'<c;c=nc());
	for(x=0;'0'<=c&&c<='9';x=(x<<3)+(x<<1)+(c^48),c=nc());
}
int n,q,a[200009],b[200009],c[200009],cnt0,cnt1,cnt00,cnt11,org1;
inline void upd(int i)
{
	if(b[i]==c[i])return;
	if(c[i])--cnt1;else--cnt0;
	if(i)if(c[i]==c[i-1])if(c[i])--cnt11;else--cnt00;
	if(i<n-1)if(c[i]==c[i+1])if(c[i])--cnt11;else--cnt00;
	c[i]=b[i];
	if(c[i])++cnt1;else++cnt0;
	if(i)if(c[i]==c[i-1])if(c[i])++cnt11;else++cnt00;
	if(i<n-1)if(c[i]==c[i+1])if(c[i])++cnt11;else++cnt00;
}
inline bool sp0(int i)
{
	if(i<=0)return 0;
	if(i>=n-1)return 0;
	return!a[i]&&a[i-1]&&a[i+1];
}
main()
{
	read(n);for(int i=0;i<n;read(a[i]),b[i]=a[i],org1+=a[i++]);
	for(int i=1;i<n-1;++i)if(sp0(i))b[i]=1;
	for(int i=0;i<n;c[i]=b[i],++i);
	for(int i=0;i<n;++i)if(b[i])++cnt1;else++cnt0;
	for(int i=1;i<n;++i)if(b[i]==b[i-1])if(b[i])++cnt11;else++cnt00;
	read(q);
	for(int i;q--;)
	{
		read(i);--i;
		if(i)b[i-1]=a[i-1],upd(i-1);
		org1-=a[i];
		b[i]=a[i]^=1,upd(i);
		org1+=a[i];
		if(i<n-1)b[i+1]=a[i+1],upd(i+1);
		if(sp0(i-1))b[i-1]=1,upd(i-1);
		if(sp0(i))b[i]=1,upd(i);
		if(sp0(i+1))b[i+1]=1,upd(i+1);
		if(cnt1==n){printf("%d\n",org1==n?n:2);continue;}
		int tmp0=cnt0-cnt00<<1,tmp1=cnt1-cnt11;
		if(!a[0])if(a[1])--tmp0;
		if(!a[n-1])if(a[n-2])--tmp0;
		printf("%d\n",tmp0+tmp1);
	}
}

提出情報

提出日時
問題 D - Insert XOR
ユーザ TOMWT
言語 C++ 20 (gcc 12.2)
得点 800
コード長 1538 Byte
結果 AC
実行時間 61 ms
メモリ 5644 KiB

コンパイルエラー

Main.cpp: In function ‘void upd(int)’:
Main.cpp:18:16: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
   18 |         if(i)if(c[i]==c[i-1])if(c[i])--cnt11;else--cnt00;
      |                ^
Main.cpp:19:20: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
   19 |         if(i<n-1)if(c[i]==c[i+1])if(c[i])--cnt11;else--cnt00;
      |                    ^
Main.cpp:22:16: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
   22 |         if(i)if(c[i]==c[i-1])if(c[i])++cnt11;else++cnt00;
      |                ^
Main.cpp:23:20: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
   23 |         if(i<n-1)if(c[i]==c[i+1])if(c[i])++cnt11;else++cnt00;
      |                    ^
Main.cpp: At global scope:
Main.cpp:31:1: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type]
   31 | main()
      | ^~~~
Main.cpp: In function ‘int main()’:
Main.cpp:37:31: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
   37 |         for(int i=1;i<n;++i)if(b[i]==b[i-1])if(b[i])++cnt11;else++cnt00;
      |                               ^
Main.cpp:51:30: warning: suggest parentheses around ‘-’ inside ‘<<’ [-Wparentheses]
   51 |                 int tmp0=cnt0-cnt00<<1,tmp1=cnt1-cnt11;
      |                          ~~~~^~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 800 / 800
結果
AC × 2
AC × 51
セット名 テストケース
Sample sample_1.txt, sample_2.txt
All 1_1.txt, 1_10.txt, 1_2.txt, 1_3.txt, 1_4.txt, 1_5.txt, 1_6.txt, 1_7.txt, 1_8.txt, 1_9.txt, 2_1.txt, 2_10.txt, 2_11.txt, 2_12.txt, 2_13.txt, 2_2.txt, 2_3.txt, 2_4.txt, 2_5.txt, 2_6.txt, 2_7.txt, 2_8.txt, 2_9.txt, 3_1.txt, 3_2.txt, 3_3.txt, 3_4.txt, 3_5.txt, 3_6.txt, 4_1.txt, 4_2.txt, 4_3.txt, 4_4.txt, 5_1.txt, 5_2.txt, 5_3.txt, 5_4.txt, 5_5.txt, 6_2.txt, 6_3.txt, 6_4.txt, 6_5.txt, 6_6.txt, 6_7.txt, 6_8.txt, 6_9.txt, 7_1.txt, 7_2.txt, 7_3.txt, sample_1.txt, sample_2.txt
ケース名 結果 実行時間 メモリ
1_1.txt AC 47 ms 3880 KiB
1_10.txt AC 52 ms 3592 KiB
1_2.txt AC 45 ms 3452 KiB
1_3.txt AC 19 ms 2944 KiB
1_4.txt AC 27 ms 3440 KiB
1_5.txt AC 20 ms 1924 KiB
1_6.txt AC 51 ms 5064 KiB
1_7.txt AC 26 ms 2588 KiB
1_8.txt AC 4 ms 2852 KiB
1_9.txt AC 54 ms 3984 KiB
2_1.txt AC 25 ms 1660 KiB
2_10.txt AC 19 ms 1616 KiB
2_11.txt AC 38 ms 4436 KiB
2_12.txt AC 14 ms 3892 KiB
2_13.txt AC 43 ms 4624 KiB
2_2.txt AC 19 ms 1568 KiB
2_3.txt AC 24 ms 1660 KiB
2_4.txt AC 37 ms 1556 KiB
2_5.txt AC 22 ms 1520 KiB
2_6.txt AC 33 ms 1556 KiB
2_7.txt AC 8 ms 1588 KiB
2_8.txt AC 33 ms 1636 KiB
2_9.txt AC 19 ms 1512 KiB
3_1.txt AC 3 ms 2852 KiB
3_2.txt AC 4 ms 3764 KiB
3_3.txt AC 1 ms 2020 KiB
3_4.txt AC 58 ms 4736 KiB
3_5.txt AC 54 ms 3624 KiB
3_6.txt AC 59 ms 4712 KiB
4_1.txt AC 61 ms 5604 KiB
4_2.txt AC 61 ms 5612 KiB
4_3.txt AC 61 ms 5560 KiB
4_4.txt AC 61 ms 5644 KiB
5_1.txt AC 50 ms 3980 KiB
5_2.txt AC 50 ms 3964 KiB
5_3.txt AC 50 ms 3888 KiB
5_4.txt AC 50 ms 3956 KiB
5_5.txt AC 50 ms 3968 KiB
6_2.txt AC 44 ms 3968 KiB
6_3.txt AC 46 ms 3896 KiB
6_4.txt AC 47 ms 3868 KiB
6_5.txt AC 49 ms 3992 KiB
6_6.txt AC 45 ms 4848 KiB
6_7.txt AC 47 ms 4196 KiB
6_8.txt AC 48 ms 4072 KiB
6_9.txt AC 48 ms 3916 KiB
7_1.txt AC 53 ms 4492 KiB
7_2.txt AC 55 ms 5000 KiB
7_3.txt AC 54 ms 4652 KiB
sample_1.txt AC 1 ms 1620 KiB
sample_2.txt AC 0 ms 1508 KiB