結果
| 問題 |
No.1148 土偶Ⅲ
|
| ユーザー |
tails
|
| 提出日時 | 2021-04-20 18:44:20 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 6 ms / 2,000 ms |
| コード長 | 1,178 bytes |
| コンパイル時間 | 281 ms |
| コンパイル使用メモリ | 32,128 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-04 05:27:23 |
| 合計ジャッジ時間 | 2,179 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 25 |
コンパイルメッセージ
main.c:45:1: warning: data definition has no type or storage class
45 | a[100000];
| ^
main.c:45:1: warning: type defaults to 'int' in declaration of 'a' [-Wimplicit-int]
main.c:47:1: warning: return type defaults to 'int' [-Wimplicit-int]
47 | main(){
| ^~~~
main.c: In function 'main':
main.c:84:17: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]
84 | write(1,&d,n);
| ^~~~~
main.c:86:9: warning: implicit declaration of function '_exit'; did you mean '_Exit'? [-Wimplicit-function-declaration]
86 | _exit(0);
| ^~~~~
| _Exit
ソースコード
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
char*mmap();
#define rd(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;}
#define HASH_BITS 18
#define HASH_MASK ((1<<HASH_BITS)-1)
long hash[1<<HASH_BITS];
int hash_add(long x){
int h=x&HASH_MASK;
while(1){
if(hash[h]==0){
hash[h]=x;
return 1;
}
if(hash[h]==x){
return 0;
}
h=h+1&HASH_MASK;
}
}
int hash_remove(long x){
int h=x&HASH_MASK;
while(1){
if(hash[h]==0){
hash[h]=x;
return 0;
}
if(hash[h]==x){
int h1,y;
while(y=hash[h1=h+1&HASH_MASK],y&&(y&HASH_MASK)!=h1){
hash[h]=y;
h=h1;
}
hash[h]=0;
return 1;
}
h=h+1&HASH_MASK;
}
}
a[100000];
main(){
char*rp=mmap(0l,1l<<28,1,2,0,0ll);
rd(n);
rd(w);
int z=0,b=0,l=0;
for(int i=0;i<n;++i){
rd(ai);
if(ai>w){
b=0;
l=i+1;
}else{
a[i]=ai;
b+=ai;
while(b>w){
hash_remove(a[l]+1);
b-=a[l];
++l;
}
if(!hash_add(ai+1)){
while(a[l]!=ai){
hash_remove(a[l]+1);
b-=a[l];
++l;
}
b-=ai;
++l;
}
if(z<i-l+1){
z=i-l+1;
}
}
}
{
int n=0;
long d=0;
while(++n,d=d<<8|0x30|z%10,z/=10);
write(1,&d,n);
}
_exit(0);
}
tails