Submission #65722


Source Code Expand

#include <cstdlib>
#include <cstring>
#include <memory>
#include <cstdio>
#include <fstream>
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <cassert>
using namespace std;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>

#define DEBUG
#ifdef DEBUG
#define DBG(...) cerr << #__VA_ARGS__ << ": " << __VA_ARGS__ << endl
#define DV(...) cerr << __VA_ARGS__ << endl
#define _D(fmt, ...) printf("%10s %3d : " fmt,__FUNCTION__,__LINE__,__VA_ARGS__)
#define _DE(fmt, ...) fprintf(stderr, "%10s %3d : " fmt,__FUNCTION__,__LINE__,__VA_ARGS__)
#else
#define DBG(...)
#define DV(...)
#define _D(fmt, ...)
#define _DE(fmt, ...)
#endif

typedef signed long long ll;
typedef unsigned long long ull;

#define _PE(...) { printf(__VA_ARGS__); fprintf(stderr, __VA_ARGS__); }
#define _E(...) fprintf(stderr, __VA_ARGS__)
#undef _P
#define _P(...) printf(__VA_ARGS__)

#define FOR(x,to) for(x=0;x<to;x++)
#define FOR2(x,from,to) for(x=from;x<to;x++)
#define ZERO(a) memset(a,0,sizeof(a))
void _fill_int(int* p,int val,int rep) {int i;	FOR(i,rep) p[i]=val;}
#define FILL_INT(a,val) _fill_int((int*)a,val,sizeof(a)/4)
#define ZERO2(a,b) memset(a,0,b)
#define MINUS(a) _fill_int((int*)a,-1,sizeof(a)/4)
#define GETs(x) scanf("%s",x);
ll GETi() { ll i;scanf("%lld",&i); return i;}
#define GET1(x) scanf("%d",x);
#define GET2(x,y) scanf("%d%d",x,y);
#define GET3(x,y,z) scanf("%d%d%d",x,y,z);

#define EPS (1e-11)
template <class T> T sqr(T val){ return val*val;}

//-------------------------------------------------------

int N;
ll types[5][2002][2002];

void solve() {
	int t,x,y,z,i,j,r,k,TM;
	int tx,ty,dy;
	ll res,p,tp;
	
	N=GETi();
	ZERO(types);
	FOR(i,N) {
		t=GETi();
		x=GETi()+1000;
		y=GETi()+1000;
		r=GETi();
		if(t==1) {
			types[0][x-r+1][y]++;		types[0][x-r+2][y]--;
			types[0][x+r][y]++;			types[0][x+r+1][y]--;
			types[0][x+1][y+r]++;		types[0][x+1][y+r-1]--;
			types[0][x-r+2][y+r-1]++;	types[0][x-r+1][y+r]--;
			types[0][x+r+1][y-r]++;		types[0][x+r][y-r+1]--;
			types[0][x+1][y-r+1]++;		types[0][x+1][y-r]--;
		}
		else if(t==2) {
			types[0][x-r+1][y]++;		types[0][x+r+1][y]--;
			types[0][x+1][y+r]++;		types[0][x+1][y-r]--;
			types[0][x+r+1][y-r]++;		types[0][x-r+1][y+r]--;
		}
		else if(t==3) {
			for(j=1;r>0;r--,j+=2) {
				types[0][x-r+1][y]+=j;		types[0][x-r+2][y]-=j;
				types[0][x+r][y]+=j;			types[0][x+r+1][y]-=j;
				types[0][x+1][y+r]+=j;		types[0][x+1][y+r-1]-=j;
				types[0][x-r+2][y+r-1]+=j;	types[0][x-r+1][y+r]-=j;
				types[0][x+r+1][y-r]+=j;		types[0][x+r][y-r+1]-=j;
				types[0][x+1][y-r+1]+=j;		types[0][x+1][y-r]-=j;
			}
		
			//右
			types[2][x-r+1][y]++;
			types[2][x-r+2][y]++;
			types[2][x+1][y]-=2;
			types[2][x+2][y]-=2;
			types[2][x+r+1][y]++;
			types[2][x+r+2][y]++;
			//右上
			types[3][x+1][y-r]--;
			types[3][x+1][y-r+1]--;
			types[3][x+1][y]+=2;
			types[3][x+1][y+1]+=2;
			types[3][x+1][y+r]--;
			types[3][x+1][y+r-1]--;
			//右下
			types[4][x+1-r][y+r]--;
			types[4][x+2-r][y+r-1]--;
			types[4][x+1][y]+=2;
			types[4][x+2][y-1]+=2;
			types[4][x+r+1][y-r]--;
			types[4][x+r+2][y-r-1]--;
		}
	}
	
	// 右上に累積
	/*
	FOR(x,2001) {
		p=0;
		FOR(y,2001) types[0][x][y]+=(p+=types[3][x][y]);
	}
	//右下に累積
	FOR(r,4001) {
		p=0;
		if(r<=2000) for(x=0,y=r;y>=0;y--,x++) types[0][x][y]+=(p+=types[4][x][y]);
		else for(x=r-2000,y=2000;x<=2000;y--,x++) types[0][x][y]+=(p+=types[4][x][y]);
	}
	//右に累積
	FOR(y,2001) {
		p=0;
		FOR(x,2001) types[0][x][y]+=(p+=types[2][x][y]);
	}
	*/
	
	// 右上に累積
	FOR(x,2001) {
		p=0;
		FOR(y,2001) types[1][x][y]=(p+=types[0][x][y]);
	}
	
	// 右下に累積
	FOR(r,4001) {
		p=0;
		if(r<=2000) for(x=0,y=r;y>=0;y--,x++) types[0][x][y]=(p+=types[1][x][y]);
		else for(x=r-2000,y=2000;x<=2000;y--,x++) types[0][x][y]=(p+=types[1][x][y]);
	}
	//右に累積
	res=0;
	FOR(y,2001) {
		p=0;
		FOR(x,2001) res=max(res,types[1][x][y]=(p+=types[0][x][y]));
	}
	
	_P("%lld\n",res);
	return;
}

int main(int argc,char** argv){
	long long span;
	struct timeval start,end,ts;
	
	if(argc>1) {
		freopen(argv[1], "r", stdin);
	}
	
	gettimeofday(&start,NULL);
	solve();
	gettimeofday(&end,NULL);
	
	span = (end.tv_sec - start.tv_sec)*1000000LL + (end.tv_usec - start.tv_usec);
	//_E("**Total time: %lld ms\n",span/1000);
	
	return 0;
	
}

Submission Info

Submission Time
Task I - その味は甘くて
User kmjp
Language C++ (G++ 4.6.4)
Score 150
Code Size 4601 Byte
Status AC
Exec Time 689 ms
Memory 157412 KB

Compile Error

./Main.cpp: In function ‘int main(int, char**)’:
./Main.cpp:172:31: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp: In function ‘ll GETi()’:
./Main.cpp:53:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name small large1 large3
Score / Max Score 10 / 10 40 / 40 100 / 100
Status
AC × 20
AC × 39
AC × 63
Set Name Test Cases
small small/case_000.txt, small/case_001.txt, small/case_002.txt, small/case_003.txt, small/case_004.txt, small/case_005.txt, small/case_006.txt, small/case_007.txt, small/case_008.txt, small/case_009.txt, small/case_010.txt, small/case_011.txt, small/case_012.txt, small/case_013.txt, small/case_014.txt, small/case_015.txt, small/case_024.txt, small/case_025.txt, small/case_026.txt, small/case_027.txt
large1 large1/case_000.txt, large1/case_001.txt, large1/case_002.txt, large1/case_003.txt, large1/case_004.txt, large1/case_005.txt, large1/case_006.txt, large1/case_007.txt, large1/case_008.txt, large1/case_009.txt, large1/case_010.txt, large1/case_011.txt, large1/case_012.txt, large1/case_013.txt, large1/case_014.txt, large1/case_015.txt, large1/case_024.txt, large1/case_025.txt, large1/case_026.txt, large1/case_027.txt, large1/large1_case_000.txt, large1/large1_case_001.txt, large1/large1_case_002.txt, large1/large1_case_003.txt, large1/large1_case_004.txt, large1/large1_case_005.txt, large1/large1_case_006.txt, large1/large1_case_007.txt, large1/large1_case_008.txt, large1/large1_case_009.txt, large1/large1_case_010.txt, large1/large1_case_011.txt, large1/large1_case_012.txt, large1/large1_case_013.txt, large1/large1_case_014.txt, large1/large1_case_020.txt, large1/large1_case_021.txt, large1/large1_case_022.txt, large1/large1_case_023.txt
large3 large3/case_000.txt, large3/case_001.txt, large3/case_002.txt, large3/case_003.txt, large3/case_004.txt, large3/case_005.txt, large3/case_006.txt, large3/case_007.txt, large3/case_008.txt, large3/case_009.txt, large3/case_010.txt, large3/case_011.txt, large3/case_012.txt, large3/case_013.txt, large3/case_014.txt, large3/case_015.txt, large3/case_024.txt, large3/case_025.txt, large3/case_026.txt, large3/case_027.txt, large3/large1_case_000.txt, large3/large1_case_001.txt, large3/large1_case_002.txt, large3/large1_case_003.txt, large3/large1_case_004.txt, large3/large1_case_005.txt, large3/large1_case_006.txt, large3/large1_case_007.txt, large3/large1_case_008.txt, large3/large1_case_009.txt, large3/large1_case_010.txt, large3/large1_case_011.txt, large3/large1_case_012.txt, large3/large1_case_013.txt, large3/large1_case_014.txt, large3/large1_case_020.txt, large3/large1_case_021.txt, large3/large1_case_022.txt, large3/large1_case_023.txt, large3/large3_case_000.txt, large3/large3_case_001.txt, large3/large3_case_002.txt, large3/large3_case_003.txt, large3/large3_case_004.txt, large3/large3_case_005.txt, large3/large3_case_006.txt, large3/large3_case_007.txt, large3/large3_case_008.txt, large3/large3_case_009.txt, large3/large3_case_010.txt, large3/large3_case_011.txt, large3/large3_case_012.txt, large3/large3_case_013.txt, large3/large3_case_014.txt, large3/large3_case_015.txt, large3/large3_case_016.txt, large3/large3_case_017.txt, large3/large3_case_018.txt, large3/large3_case_019.txt, large3/large3_case_020.txt, large3/large3_case_021.txt, large3/large3_case_022.txt, large3/large3_case_023.txt
Case Name Status Exec Time Memory
large1/case_000.txt AC 525 ms 157372 KB
large1/case_001.txt AC 562 ms 157380 KB
large1/case_002.txt AC 553 ms 157384 KB
large1/case_003.txt AC 566 ms 157284 KB
large1/case_004.txt AC 509 ms 157296 KB
large1/case_005.txt AC 562 ms 157384 KB
large1/case_006.txt AC 541 ms 157380 KB
large1/case_007.txt AC 563 ms 157380 KB
large1/case_008.txt AC 552 ms 157396 KB
large1/case_009.txt AC 514 ms 157380 KB
large1/case_010.txt AC 540 ms 157376 KB
large1/case_011.txt AC 566 ms 157364 KB
large1/case_012.txt AC 562 ms 157400 KB
large1/case_013.txt AC 558 ms 157384 KB
large1/case_014.txt AC 510 ms 157392 KB
large1/case_015.txt AC 554 ms 157376 KB
large1/case_024.txt AC 561 ms 157388 KB
large1/case_025.txt AC 551 ms 157388 KB
large1/case_026.txt AC 552 ms 157384 KB
large1/case_027.txt AC 532 ms 157332 KB
large1/large1_case_000.txt AC 541 ms 157372 KB
large1/large1_case_001.txt AC 523 ms 157380 KB
large1/large1_case_002.txt AC 574 ms 157380 KB
large1/large1_case_003.txt AC 543 ms 157376 KB
large1/large1_case_004.txt AC 570 ms 157384 KB
large1/large1_case_005.txt AC 535 ms 157384 KB
large1/large1_case_006.txt AC 527 ms 157376 KB
large1/large1_case_007.txt AC 526 ms 157376 KB
large1/large1_case_008.txt AC 540 ms 157328 KB
large1/large1_case_009.txt AC 569 ms 157380 KB
large1/large1_case_010.txt AC 546 ms 157396 KB
large1/large1_case_011.txt AC 553 ms 157384 KB
large1/large1_case_012.txt AC 545 ms 157376 KB
large1/large1_case_013.txt AC 537 ms 157372 KB
large1/large1_case_014.txt AC 573 ms 157372 KB
large1/large1_case_020.txt AC 543 ms 157408 KB
large1/large1_case_021.txt AC 528 ms 157384 KB
large1/large1_case_022.txt AC 529 ms 157380 KB
large1/large1_case_023.txt AC 540 ms 157396 KB
large3/case_000.txt AC 561 ms 157380 KB
large3/case_001.txt AC 549 ms 157392 KB
large3/case_002.txt AC 532 ms 157404 KB
large3/case_003.txt AC 560 ms 157396 KB
large3/case_004.txt AC 534 ms 157400 KB
large3/case_005.txt AC 565 ms 157380 KB
large3/case_006.txt AC 565 ms 157312 KB
large3/case_007.txt AC 517 ms 157396 KB
large3/case_008.txt AC 513 ms 157312 KB
large3/case_009.txt AC 564 ms 157384 KB
large3/case_010.txt AC 542 ms 157380 KB
large3/case_011.txt AC 532 ms 157396 KB
large3/case_012.txt AC 551 ms 157364 KB
large3/case_013.txt AC 536 ms 157412 KB
large3/case_014.txt AC 562 ms 157372 KB
large3/case_015.txt AC 551 ms 157384 KB
large3/case_024.txt AC 559 ms 157376 KB
large3/case_025.txt AC 560 ms 157388 KB
large3/case_026.txt AC 556 ms 157384 KB
large3/case_027.txt AC 550 ms 157392 KB
large3/large1_case_000.txt AC 530 ms 157384 KB
large3/large1_case_001.txt AC 574 ms 157400 KB
large3/large1_case_002.txt AC 530 ms 157372 KB
large3/large1_case_003.txt AC 576 ms 157384 KB
large3/large1_case_004.txt AC 522 ms 157396 KB
large3/large1_case_005.txt AC 572 ms 157388 KB
large3/large1_case_006.txt AC 561 ms 157388 KB
large3/large1_case_007.txt AC 524 ms 157380 KB
large3/large1_case_008.txt AC 532 ms 157388 KB
large3/large1_case_009.txt AC 541 ms 157392 KB
large3/large1_case_010.txt AC 560 ms 157384 KB
large3/large1_case_011.txt AC 542 ms 157384 KB
large3/large1_case_012.txt AC 522 ms 157384 KB
large3/large1_case_013.txt AC 552 ms 157380 KB
large3/large1_case_014.txt AC 537 ms 157380 KB
large3/large1_case_020.txt AC 571 ms 157376 KB
large3/large1_case_021.txt AC 544 ms 157380 KB
large3/large1_case_022.txt AC 539 ms 157376 KB
large3/large1_case_023.txt AC 529 ms 157380 KB
large3/large3_case_000.txt AC 635 ms 157380 KB
large3/large3_case_001.txt AC 609 ms 157380 KB
large3/large3_case_002.txt AC 681 ms 157384 KB
large3/large3_case_003.txt AC 686 ms 157396 KB
large3/large3_case_004.txt AC 686 ms 157332 KB
large3/large3_case_005.txt AC 630 ms 157368 KB
large3/large3_case_006.txt AC 689 ms 157368 KB
large3/large3_case_007.txt AC 612 ms 157384 KB
large3/large3_case_008.txt AC 619 ms 157396 KB
large3/large3_case_009.txt AC 614 ms 157384 KB
large3/large3_case_010.txt AC 612 ms 157376 KB
large3/large3_case_011.txt AC 648 ms 157388 KB
large3/large3_case_012.txt AC 651 ms 157380 KB
large3/large3_case_013.txt AC 678 ms 157380 KB
large3/large3_case_014.txt AC 681 ms 157380 KB
large3/large3_case_015.txt AC 616 ms 157388 KB
large3/large3_case_016.txt AC 650 ms 157376 KB
large3/large3_case_017.txt AC 669 ms 157384 KB
large3/large3_case_018.txt AC 618 ms 157400 KB
large3/large3_case_019.txt AC 634 ms 157380 KB
large3/large3_case_020.txt AC 670 ms 157384 KB
large3/large3_case_021.txt AC 622 ms 157384 KB
large3/large3_case_022.txt AC 672 ms 157376 KB
large3/large3_case_023.txt AC 667 ms 157380 KB
small/case_000.txt AC 563 ms 157384 KB
small/case_001.txt AC 530 ms 157404 KB
small/case_002.txt AC 511 ms 157380 KB
small/case_003.txt AC 563 ms 157384 KB
small/case_004.txt AC 544 ms 157384 KB
small/case_005.txt AC 545 ms 157380 KB
small/case_006.txt AC 532 ms 157408 KB
small/case_007.txt AC 571 ms 157312 KB
small/case_008.txt AC 559 ms 157388 KB
small/case_009.txt AC 550 ms 157376 KB
small/case_010.txt AC 514 ms 157388 KB
small/case_011.txt AC 510 ms 157380 KB
small/case_012.txt AC 540 ms 157408 KB
small/case_013.txt AC 529 ms 157332 KB
small/case_014.txt AC 547 ms 157404 KB
small/case_015.txt AC 564 ms 157380 KB
small/case_024.txt AC 521 ms 157380 KB
small/case_025.txt AC 508 ms 157380 KB
small/case_026.txt AC 534 ms 157392 KB
small/case_027.txt AC 561 ms 157380 KB