Submission #60240


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cassert>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <utility>
#include <numeric>
#include <algorithm>
#include <bitset>
#include <complex>

using namespace std;

typedef unsigned uint;
typedef long long Int;
typedef vector<int> vint;
typedef pair<int,int> pint;
#define mp make_pair

template<class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cout << *i << " "; cout << endl; }
template<class T> void chmin(T &t, T f) { if (t > f) t = f; }
template<class T> void chmax(T &t, T f) { if (t < f) t = f; }
int in() { int x; scanf("%d", &x); return x; }

const int L = 2010;

int N;
int T[10010], X[10010], Y[10010], S[10010];
Int ps[3][2020];

int main() {
	int i, d;
	int x, y, y0, y1;
	
	for (; ~scanf("%d", &N); ) {
		for (i = 0; i < N; ++i) {
			T[i] = in();
			X[i] = in() + L / 2;
			Y[i] = in() + L / 2;
			S[i] = in() - 1;
		}
		Int ans = 0;
		for (x = 0; x < L; ++x) {
			memset(ps, 0, sizeof(ps));
			for (i = 0; i < N; ++i) {
				/*
					X[i] - S[i] <= x <= X[i] + S[i]
					Y[i] - S[i] <= y <= Y[i] + S[i]
					(X[i] + Y[i]) - S[i] <= x + y <= (X[i] + Y[i]) + S[i]
				*/
				if (X[i] - S[i] <= x && x <= X[i] + S[i]) {
					y0 = max(Y[i] - S[i], (X[i] + Y[i]) - S[i] - x);
					y1 = min(Y[i] + S[i], (X[i] + Y[i]) + S[i] - x);
					if (y0 <= y1) {
						int l = y1 - y0 - S[i];
						switch (T[i]) {
							case 1: {
								ps[0][y0    ] += 1;
								ps[0][y1 + 1] -= 1;
							} break;
							case 2: {
								ps[1][y0    ] += +1;
								ps[1][y0 + l] -= +1;
								ps[0][y0    ] += -(y0 - 1);
								ps[0][y0 + l] -= -(y0 - 1);
								
								ps[0][y0 + l    ] += l + 1;
								ps[0][y1 - l + 1] -= l + 1;
								
								ps[1][y1 - l + 1] += -1;
								ps[1][y1     + 1] -= -1;
								ps[0][y1 - l + 1] += +(y1 + 1);
								ps[0][y1     + 1] -= +(y1 + 1);
							} break;
							case 3: {
								ps[2][y0    ] += 1;
								ps[2][y0 + l] -= 1;
								ps[1][y0    ] += -2 * (y0 - 1);
								ps[1][y0 + l] -= -2 * (y0 - 1);
								ps[0][y0    ] += (y0 - 1) * (y0 - 1);
								ps[0][y0 + l] -= (y0 - 1) * (y0 - 1);
								
								ps[0][y0 + l    ] += (l + 1) * (l + 1);
								ps[0][y1 - l + 1] -= (l + 1) * (l + 1);
								
								ps[2][y1 - l + 1] += 1;
								ps[2][y1     + 1] -= 1;
								ps[1][y1 - l + 1] += -2 * (y1 + 1);
								ps[1][y1     + 1] -= -2 * (y1 + 1);
								ps[0][y1 - l + 1] += (y1 + 1) * (y1 + 1);
								ps[0][y1     + 1] -= (y1 + 1) * (y1 + 1);
							} break;
							default: assert(0);
						}
					}
				}
			}
			Int now[3] = {};
			for (y = 0; y < L; ++y) {
				for (d = 0; d < 3; ++d) {
					now[d] += ps[d][y];
				}
				Int tmp = (now[2] * y + now[1]) * y + now[0];
// if(tmp)cout<<x-L/2<<" "<<y-L/2<<" : "<<tmp<<endl;
				chmax(ans, tmp);
			}
		}
		printf("%lld\n", ans);
	}
	
	return 0;
}

Submission Info

Submission Time
Task I - その味は甘くて
User hos_lyric
Language C++ (GCC 4.4.7)
Score 150
Code Size 3059 Byte
Status AC
Exec Time 247 ms
Memory 928 KB

Compile Error

./Main.cpp: In function ‘int in()’:
./Main.cpp:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_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 39 ms 784 KB
large1/case_001.txt AC 38 ms 780 KB
large1/case_002.txt AC 38 ms 696 KB
large1/case_003.txt AC 41 ms 772 KB
large1/case_004.txt AC 39 ms 784 KB
large1/case_005.txt AC 39 ms 816 KB
large1/case_006.txt AC 43 ms 784 KB
large1/case_007.txt AC 39 ms 788 KB
large1/case_008.txt AC 39 ms 788 KB
large1/case_009.txt AC 38 ms 792 KB
large1/case_010.txt AC 38 ms 788 KB
large1/case_011.txt AC 39 ms 676 KB
large1/case_012.txt AC 37 ms 784 KB
large1/case_013.txt AC 38 ms 760 KB
large1/case_014.txt AC 38 ms 784 KB
large1/case_015.txt AC 39 ms 784 KB
large1/case_024.txt AC 39 ms 816 KB
large1/case_025.txt AC 39 ms 700 KB
large1/case_026.txt AC 39 ms 784 KB
large1/case_027.txt AC 39 ms 784 KB
large1/large1_case_000.txt AC 178 ms 884 KB
large1/large1_case_001.txt AC 179 ms 820 KB
large1/large1_case_002.txt AC 178 ms 828 KB
large1/large1_case_003.txt AC 179 ms 912 KB
large1/large1_case_004.txt AC 179 ms 832 KB
large1/large1_case_005.txt AC 178 ms 820 KB
large1/large1_case_006.txt AC 178 ms 912 KB
large1/large1_case_007.txt AC 177 ms 888 KB
large1/large1_case_008.txt AC 179 ms 824 KB
large1/large1_case_009.txt AC 178 ms 820 KB
large1/large1_case_010.txt AC 178 ms 920 KB
large1/large1_case_011.txt AC 179 ms 924 KB
large1/large1_case_012.txt AC 178 ms 824 KB
large1/large1_case_013.txt AC 179 ms 816 KB
large1/large1_case_014.txt AC 179 ms 820 KB
large1/large1_case_020.txt AC 152 ms 820 KB
large1/large1_case_021.txt AC 149 ms 816 KB
large1/large1_case_022.txt AC 145 ms 824 KB
large1/large1_case_023.txt AC 145 ms 928 KB
large3/case_000.txt AC 38 ms 792 KB
large3/case_001.txt AC 38 ms 696 KB
large3/case_002.txt AC 38 ms 796 KB
large3/case_003.txt AC 39 ms 692 KB
large3/case_004.txt AC 42 ms 788 KB
large3/case_005.txt AC 39 ms 696 KB
large3/case_006.txt AC 40 ms 788 KB
large3/case_007.txt AC 40 ms 784 KB
large3/case_008.txt AC 39 ms 820 KB
large3/case_009.txt AC 41 ms 792 KB
large3/case_010.txt AC 41 ms 776 KB
large3/case_011.txt AC 40 ms 760 KB
large3/case_012.txt AC 39 ms 808 KB
large3/case_013.txt AC 39 ms 672 KB
large3/case_014.txt AC 39 ms 692 KB
large3/case_015.txt AC 38 ms 668 KB
large3/case_024.txt AC 39 ms 692 KB
large3/case_025.txt AC 39 ms 788 KB
large3/case_026.txt AC 38 ms 696 KB
large3/case_027.txt AC 39 ms 788 KB
large3/large1_case_000.txt AC 178 ms 916 KB
large3/large1_case_001.txt AC 177 ms 824 KB
large3/large1_case_002.txt AC 178 ms 916 KB
large3/large1_case_003.txt AC 178 ms 828 KB
large3/large1_case_004.txt AC 178 ms 920 KB
large3/large1_case_005.txt AC 178 ms 816 KB
large3/large1_case_006.txt AC 178 ms 816 KB
large3/large1_case_007.txt AC 178 ms 916 KB
large3/large1_case_008.txt AC 179 ms 912 KB
large3/large1_case_009.txt AC 178 ms 912 KB
large3/large1_case_010.txt AC 178 ms 828 KB
large3/large1_case_011.txt AC 178 ms 832 KB
large3/large1_case_012.txt AC 178 ms 828 KB
large3/large1_case_013.txt AC 178 ms 828 KB
large3/large1_case_014.txt AC 178 ms 832 KB
large3/large1_case_020.txt AC 148 ms 836 KB
large3/large1_case_021.txt AC 148 ms 924 KB
large3/large1_case_022.txt AC 144 ms 824 KB
large3/large1_case_023.txt AC 144 ms 832 KB
large3/large3_case_000.txt AC 242 ms 824 KB
large3/large3_case_001.txt AC 247 ms 824 KB
large3/large3_case_002.txt AC 242 ms 916 KB
large3/large3_case_003.txt AC 241 ms 828 KB
large3/large3_case_004.txt AC 242 ms 820 KB
large3/large3_case_005.txt AC 244 ms 824 KB
large3/large3_case_006.txt AC 244 ms 832 KB
large3/large3_case_007.txt AC 243 ms 832 KB
large3/large3_case_008.txt AC 245 ms 820 KB
large3/large3_case_009.txt AC 242 ms 828 KB
large3/large3_case_010.txt AC 241 ms 828 KB
large3/large3_case_011.txt AC 243 ms 832 KB
large3/large3_case_012.txt AC 243 ms 828 KB
large3/large3_case_013.txt AC 242 ms 908 KB
large3/large3_case_014.txt AC 243 ms 920 KB
large3/large3_case_015.txt AC 243 ms 828 KB
large3/large3_case_016.txt AC 243 ms 820 KB
large3/large3_case_017.txt AC 246 ms 828 KB
large3/large3_case_018.txt AC 243 ms 824 KB
large3/large3_case_019.txt AC 242 ms 828 KB
large3/large3_case_020.txt AC 196 ms 832 KB
large3/large3_case_021.txt AC 195 ms 820 KB
large3/large3_case_022.txt AC 191 ms 824 KB
large3/large3_case_023.txt AC 190 ms 828 KB
small/case_000.txt AC 38 ms 812 KB
small/case_001.txt AC 38 ms 780 KB
small/case_002.txt AC 38 ms 668 KB
small/case_003.txt AC 38 ms 796 KB
small/case_004.txt AC 39 ms 784 KB
small/case_005.txt AC 39 ms 768 KB
small/case_006.txt AC 39 ms 792 KB
small/case_007.txt AC 38 ms 788 KB
small/case_008.txt AC 39 ms 776 KB
small/case_009.txt AC 39 ms 792 KB
small/case_010.txt AC 38 ms 788 KB
small/case_011.txt AC 40 ms 816 KB
small/case_012.txt AC 39 ms 664 KB
small/case_013.txt AC 38 ms 788 KB
small/case_014.txt AC 39 ms 784 KB
small/case_015.txt AC 39 ms 776 KB
small/case_024.txt AC 39 ms 780 KB
small/case_025.txt AC 38 ms 784 KB
small/case_026.txt AC 39 ms 784 KB
small/case_027.txt AC 39 ms 776 KB