結果

問題 No.3677 Global Checksum
コンテスト
ユーザー 👑 tails
提出日時 2026-09-05 02:44:47
言語 C(gnu17)
(gcc 15.3.0)
コンパイル:
gcc-15 -O2 -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
TLE  
実行時間 -
コード長 1,564 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 282 ms
コンパイル使用メモリ 40,960 KB
実行使用メモリ 55,424 KB
最終ジャッジ日時 2026-09-05 02:44:54
合計ジャッジ時間 4,409 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 12 TLE * 1 -- * 7
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function 'checktime':
main.c:14:9: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration]
   14 |         system("date +%s.%N >&2");
      |         ^~~~~~
main.c: In function 'mkwd':
main.c:23:20: warning: multi-character character constant [-Wmultichar]
   23 |         unsigned v='0000';
      |                    ^~~~~~
main.c: In function 'main':
main.c:5:53: warning: implicit declaration of function 'read' [-Wimplicit-function-declaration]
    5 | #define rd_init() char*rp=({static char rbuf[1<<26];read(0,rbuf,1<<26);rbuf;})
      |                                                     ^~~~
main.c:48:17: note: in expansion of macro 'rd_init'
   48 |                 rd_init();
      |                 ^~~~~~~
main.c:77:17: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]
   77 |                 write(1,wp,wbuf+sizeof wbuf-wp);
      |                 ^~~~~
main.c:80:9: warning: implicit declaration of function '_exit' [-Wimplicit-function-declaration]
   80 |         _exit(0);
      |         ^~~~~
main.c:80:9: warning: incompatible implicit declaration of built-in function '_exit' [-Wbuiltin-declaration-mismatch]

ソースコード

diff #
raw source code

#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")

//#define rd_init() char*rp=({char*mmap();mmap(0l,1l<<26,1,2,0,0ll);})
#define rd_init() char*rp=({static char rbuf[1<<26];read(0,rbuf,1<<26);rbuf;})
#define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})
#define WTHI(v) {unsigned _z=v,_n=0;long _d=0;while(++_n,_d=_d<<8|0x30|_z%10,_z/=10);*(long*)wp=_d;wp+=_n;}
#define WTLO(v) {unsigned _z=v,_n=8;long _d=0;while(_d=_d<<8|0x30|_z%10,_z/=10,--_n);*(long*)wp=_d;wp+=8;}
#define wt(v) if(v>=100000000){WTHI(v/100000000);WTLO(v%100000000);}else{WTHI(v);}
#define rep(v,e) for(typeof(e)v=0;v<e;++v)
#define rrep(v,e) for(typeof(e)v=e;v--;)

void checktime(){
	system("date +%s.%N >&2");
}

unsigned a[1000000];
char wbuf[1<<25];
unsigned wd[10000];
char wdlz[10000];

void mkwd(){
	unsigned v='0000';
	long i=0;
	rep(a,10){
		rep(b,10){
			rep(c,10){
				rep(d,10){
					wd[i++]=v;
					v+=1<<24;
				}
				v+=(1<<16)-(10<<24);
			}
			v+=(1<<8)-(10<<16);
		}
		v+=(1<<0)-(10<<8);
	}
	rep(j,1000) wdlz[j]=1;
	rep(j,100) wdlz[j]=2;
	rep(j,10) wdlz[j]=3;
}

int main(){
checktime();
	int h,w;
	unsigned t=0;
	{
		rd_init();
		h=rd();
		w=rd();
		rep(i,h){
			unsigned s=0;
			rep(j,w){
				s+=rd();
			}
			a[i]=s;
			t+=s;
		}
	}
checktime();
	mkwd();
checktime();
	{
		char*wp=wbuf+sizeof wbuf;
		rrep(i,h){
			*--wp='\n';
			unsigned v=t+a[i];
			while(v>=10000){
				wp-=4;
				*(unsigned*)wp=wd[v%10000];
				v/=10000;
			}
			wp-=4;
			*(unsigned*)wp=wd[v];
			wp+=wdlz[v];
		}
		write(1,wp,wbuf+sizeof wbuf-wp);
	}
checktime();
	_exit(0);
}
0