結果
| 問題 | No.230 Splarraay スプラレェーイ |
| コンテスト | |
| ユーザー |
%20
|
| 提出日時 | 2017-02-01 23:54:41 |
| 言語 | C90 (gcc 15.2.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,189 bytes |
| 記録 | |
| コンパイル時間 | 176 ms |
| コンパイル使用メモリ | 39,728 KB |
| 最終ジャッジ日時 | 2026-02-24 00:15:02 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 3 |
| other | RE * 17 |
コンパイルメッセージ
main.c:1:1: warning: data definition has no type or storage class
1 | x,l,r;m[1<<18][2],A,B;
| ^
main.c:1:7: warning: data definition has no type or storage class
1 | x,l,r;m[1<<18][2],A,B;
| ^
main.c: In function 'main':
main.c:16:29: warning: incompatible implicit declaration of built-in function 'scanf' [-Wbuiltin-declaration-mismatch]
16 | for(gets(gets(&x));~scanf("%d%d%d",&x,&l,&r);){
| ^~~~~
main.c:1:1: note: include '<stdio.h>' or provide a declaration of 'scanf'
+++ |+#include <stdio.h>
1 | x,l,r;m[1<<18][2],A,B;
main.c:67:12: warning: incompatible implicit declaration of built-in function 'printf' [-Wbuiltin-declaration-mismatch]
67 | x=!printf("%d %d\n",m[0][0]+m[1][0],m[0][1]+m[1][1]);
| ^~~~~~
main.c:67:12: note: include '<stdio.h>' or provide a declaration of 'printf'
/usr/bin/ld: /tmp/ccBhpCyS.o: in function `main':
main.c:(.text.startup+0x1b): 警告: the `gets' function is dangerous and should not be used.
ソースコード
x,l,r;m[1<<18][2],A,B;
f(i,k){
if(m[i][0]==2<<k){
m[i<<1|0][0]=m[i][0]>>1;
m[i<<1|1][0]=m[i][0]>>1;
}else if(m[i][1]==2<<k){
m[i<<1|0][1]=m[i][1]>>1;
m[i<<1|1][1]=m[i][1]>>1;
}
}
g(i){
m[i][0]=m[i<<1|0][0]+m[i<<1|1][0];
m[i][1]=m[i<<1|0][1]+m[i<<1|1][1];
}
main(i,j,k){
for(gets(gets(&x));~scanf("%d%d%d",&x,&l,&r);){
if(x--){
for(i=j=1,k=17;k--;){
f(i,k);
if(i!=j){
f(j,k);
if((l>>k&1)==0){
m[i<<1|1][x]=1<<k;m[i<<1|1][!x]=0;
}
if((r>>k&1)==1){
m[j<<1|0][x]=1<<k;m[j<<1|0][!x]=0;
}
}
i=i<<1|l>>k&1;
j=j<<1|r>>k&1;
}
m[i][x]=1;m[i][!x]=0;
m[j][x]=1;m[j][!x]=0;
for(;++k<17;){
i>>=1;
j>>=1;
g(i);
if(i!=j)g(j);
}
}else{
A=B=0;
for(i=j=1,k=17;k--;){
f(i,k);
if(i!=j){
f(j,k);
if((l>>k&1)==0){
A+=m[i<<1|1][0];B+=m[i<<1|1][1];
}
if((r>>k&1)==1){
A+=m[j<<1|0][0];B+=m[j<<1|0][1];
}
}
i=i<<1|l>>k&1;
j=j<<1|r>>k&1;
}
A+=m[i][0];B+=m[i][1];
if(i!=j){
A+=m[j][0];B+=m[j][1];
}
if(A>B){
m[0][0]+=A;
}else if(A<B){
m[0][1]+=B;
}
}
}
x=!printf("%d %d\n",m[0][0]+m[1][0],m[0][1]+m[1][1]);
}
%20