ログインしてください。
提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |