Submission #617017


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <map>
using namespace std;
#define MOD @
#define ADD(X,Y) ((X) = ((X) + (Y)%MOD) % MOD)
typedef long long i64; typedef vector<int> ivec; typedef vector<string> svec;

struct segtree
{
	static const int N = 1 << 17;
	int val[2 * N];

	void init()
	{
		for (int i = 0; i < 2 * N; ++i) val[i] = 0;
	}

	void update(int L, int R, int v)
	{
		L += N;
		R += N;
		while (L < R) {
			if (L & 1) val[L++] += v;
			if (R & 1) val[--R] += v;
			L >>= 1;
			R >>= 1;
		}
	}

	int at(int p)
	{
		p += N;
		int ret = 0;
		while (p) {
			ret += val[p];
			p >>= 1;
		}
		return ret;
	}

};

int N, L;
int T[101010], P[101010];
segtree seg;

int find_positive()
{
	int left = 0, right = L;
	while (left < right) {
		int mid = (left + right) / 2;

		if (seg.at(mid) > 0) {
			right = mid;
		} else {
			left = mid + 1;
		}
	}

	return left;
}

int main()
{
	scanf("%d%d", &N, &L);
	for (int i = 0; i < N; ++i) scanf("%d%d", T + i, P + i);

	for (int i = 0; i < N; ++i) {
		int i2 = i;
		while (i2 < N && T[i] == T[i2]) ++i2;

		reverse(T + i, T + i2);
		reverse(P + i, P + i2);

		i = i2 - 1;
	}

	seg.init();

	i64 top = 0;
	for (int i = 0; i < N; ++i) {
		top += P[i];

		seg.update(0, P[i], -1);
		seg.update(P[i], L + 1, 1);

		int pos = find_positive();
		seg.update(pos, L + 1, -1);

		//printf("%lld, ", top);
		//for (int j = 0; j < L; ++j) printf("%d ", seg.at(j)); puts("");
	}

	for (int i = 0; i < L; ++i) top += seg.at(i);
	printf("%lld\n", top);

	return 0;
}

Submission Info

Submission Time
Task E - 花火
User semiexp
Language C++11 (GCC 4.9.2)
Score 160
Code Size 1756 Byte
Status AC
Exec Time 143 ms
Memory 2608 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:74:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &L);
                       ^
./Main.cpp:75:57: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  for (int i = 0; i < N; ++i) scanf("%d%d", T + i, P + i);
                                                         ^

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 130 / 130
Status
AC × 3
AC × 45
AC × 95
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt, subtask1_32.txt, subtask1_33.txt, subtask1_34.txt, subtask1_35.txt, subtask1_36.txt, subtask1_37.txt, subtask1_38.txt, subtask1_39.txt, subtask1_40.txt, subtask1_41.txt, subtask1_42.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask2_41.txt, subtask2_42.txt, subtask2_43.txt, subtask2_44.txt, subtask2_45.txt, subtask2_46.txt, subtask2_47.txt, subtask2_48.txt, subtask2_49.txt, subtask2_50.txt
Case Name Status Exec Time Memory
sample_01.txt AC 28 ms 1948 KB
sample_02.txt AC 27 ms 1832 KB
sample_03.txt AC 28 ms 1820 KB
subtask1_01.txt AC 29 ms 1948 KB
subtask1_02.txt AC 30 ms 1952 KB
subtask1_03.txt AC 29 ms 1828 KB
subtask1_04.txt AC 28 ms 1948 KB
subtask1_05.txt AC 28 ms 1828 KB
subtask1_06.txt AC 28 ms 1824 KB
subtask1_07.txt AC 29 ms 1952 KB
subtask1_08.txt AC 29 ms 1820 KB
subtask1_09.txt AC 29 ms 1824 KB
subtask1_10.txt AC 30 ms 1824 KB
subtask1_11.txt AC 30 ms 1940 KB
subtask1_12.txt AC 30 ms 1952 KB
subtask1_13.txt AC 28 ms 1816 KB
subtask1_14.txt AC 30 ms 1764 KB
subtask1_15.txt AC 28 ms 1820 KB
subtask1_16.txt AC 29 ms 1948 KB
subtask1_17.txt AC 31 ms 1764 KB
subtask1_18.txt AC 28 ms 1952 KB
subtask1_19.txt AC 31 ms 1828 KB
subtask1_20.txt AC 29 ms 1824 KB
subtask1_21.txt AC 29 ms 1820 KB
subtask1_22.txt AC 29 ms 1824 KB
subtask1_23.txt AC 29 ms 1828 KB
subtask1_24.txt AC 29 ms 1836 KB
subtask1_25.txt AC 28 ms 1828 KB
subtask1_26.txt AC 28 ms 1832 KB
subtask1_27.txt AC 30 ms 1832 KB
subtask1_28.txt AC 29 ms 1824 KB
subtask1_29.txt AC 27 ms 1952 KB
subtask1_30.txt AC 29 ms 1820 KB
subtask1_31.txt AC 29 ms 1836 KB
subtask1_32.txt AC 29 ms 1824 KB
subtask1_33.txt AC 29 ms 1824 KB
subtask1_34.txt AC 29 ms 1820 KB
subtask1_35.txt AC 29 ms 1824 KB
subtask1_36.txt AC 29 ms 1828 KB
subtask1_37.txt AC 27 ms 1824 KB
subtask1_38.txt AC 27 ms 1820 KB
subtask1_39.txt AC 28 ms 1824 KB
subtask1_40.txt AC 28 ms 1836 KB
subtask1_41.txt AC 28 ms 1816 KB
subtask1_42.txt AC 28 ms 1828 KB
subtask2_01.txt AC 143 ms 2596 KB
subtask2_02.txt AC 142 ms 2596 KB
subtask2_03.txt AC 142 ms 2592 KB
subtask2_04.txt AC 142 ms 2596 KB
subtask2_05.txt AC 143 ms 2596 KB
subtask2_06.txt AC 116 ms 2340 KB
subtask2_07.txt AC 89 ms 2216 KB
subtask2_08.txt AC 63 ms 2076 KB
subtask2_09.txt AC 60 ms 2596 KB
subtask2_10.txt AC 64 ms 2592 KB
subtask2_11.txt AC 71 ms 2600 KB
subtask2_12.txt AC 83 ms 2588 KB
subtask2_13.txt AC 122 ms 2512 KB
subtask2_14.txt AC 118 ms 2596 KB
subtask2_15.txt AC 121 ms 2592 KB
subtask2_16.txt AC 125 ms 2604 KB
subtask2_17.txt AC 131 ms 2596 KB
subtask2_18.txt AC 141 ms 2596 KB
subtask2_19.txt AC 52 ms 2592 KB
subtask2_20.txt AC 56 ms 2596 KB
subtask2_21.txt AC 62 ms 2600 KB
subtask2_22.txt AC 72 ms 2596 KB
subtask2_23.txt AC 111 ms 2456 KB
subtask2_24.txt AC 124 ms 2600 KB
subtask2_25.txt AC 124 ms 2600 KB
subtask2_26.txt AC 124 ms 2600 KB
subtask2_27.txt AC 129 ms 2596 KB
subtask2_28.txt AC 135 ms 2600 KB
subtask2_29.txt AC 105 ms 2592 KB
subtask2_30.txt AC 115 ms 2596 KB
subtask2_31.txt AC 127 ms 2600 KB
subtask2_32.txt AC 130 ms 2596 KB
subtask2_33.txt AC 132 ms 2600 KB
subtask2_34.txt AC 122 ms 2608 KB
subtask2_35.txt AC 67 ms 2592 KB
subtask2_36.txt AC 76 ms 2604 KB
subtask2_37.txt AC 112 ms 2600 KB
subtask2_38.txt AC 128 ms 2592 KB
subtask2_39.txt AC 121 ms 2524 KB
subtask2_40.txt AC 54 ms 2588 KB
subtask2_41.txt AC 59 ms 2600 KB
subtask2_42.txt AC 105 ms 2588 KB
subtask2_43.txt AC 128 ms 2604 KB
subtask2_44.txt AC 140 ms 2604 KB
subtask2_45.txt AC 98 ms 2592 KB
subtask2_46.txt AC 96 ms 2592 KB
subtask2_47.txt AC 101 ms 2588 KB
subtask2_48.txt AC 29 ms 1748 KB
subtask2_49.txt AC 27 ms 1828 KB
subtask2_50.txt AC 30 ms 1832 KB