Submission #618079


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#define SIZE 100005
#define BT 1024*128*2

using namespace std;
typedef long long int ll;

struct segtree
{
	ll add[BT];///f(i)-f(i+1)を持つ
	bool rm[BT];
	int mum;
	
	void init(int n)
	{
		mum=1;
		while(mum<n) mum<<=1;
		for(int i=0;i<mum*2;i++)
		{
			add[i]=0;
			rm[i]=false;
		}
	}
	void pass(int k)
	{
		if(k*2+2<2*mum)
		{
			if(rm[k])
			{
				rm[k]=false;
				add[k*2+1]=add[k*2+2]=0;
				rm[k*2+1]=rm[k*2+2]=true;
			}
			add[k*2+1]+=add[k];
			add[k*2+2]+=add[k];
			add[k]=0;
		}
	}
	void update(int a,int b,int k,int l,int r,ll v)
	{
		if(b<=l||r<=a) return;
		pass(k);
		if(a<=l&&r<=b) add[k]+=v;
		else
		{
			update(a,b,k*2+1,l,(l+r)/2,v);
			update(a,b,k*2+2,(l+r)/2,r,v);
		}
	}
	void update(int a,int b,ll v)
	{
		update(a,b,0,0,mum,v);
	}
	ll get(int x)//これは広義単調減少になるように調整される
	{
		int l=0,r=mum,k=0;
		while(l+1<r)
		{
			pass(k);
			int m=(l+r)/2;
			if(x<m)
			{
				r=m;
				k=k*2+1;
			}
			else
			{
				l=m;
				k=k*2+2;
			}
		}
		return add[k];
	}
	int position()//初めてgetが0以下になるところを探す
	{
		int l=-1,r=mum;
		while(l+1<r)
		{
			int m=(l+r)/2;
			if(get(m)<=0) r=m;
			else l=m;
		}
		return r;
	}
	void fresh(int a,int b,int k,int l,int r)//範囲を0にする
	{
		if(b<=l||r<=a) return;
		pass(k);
		if(a<=l&&r<=b)
		{
			rm[k]=true;
			add[k]=0;
		}
		else
		{
			fresh(a,b,k*2+1,l,(l+r)/2);
			fresh(a,b,k*2+2,(l+r)/2,r);
		}
	}
	void fresh(int a,int b)
	{
		fresh(a,b,0,0,mum);
	}
};
segtree seg;
ll score0;
vector <int> vec[SIZE];

int main()
{
	int n,L;
	scanf("%d %d",&n,&L);
	seg.init(L+2);
	for(int i=0;i<n;i++)
	{
		int t,p;
		scanf("%d %d",&t,&p);t--;
		vec[t].push_back(p);
	}
	for(int i=0;i<SIZE;i++)
	{
		if(vec[i].empty()) continue;
		for(int j=0;j<vec[i].size();j++)
		{
			int p=vec[i][j];
			score0+=p;
			if(p>0) seg.update(0,p,1);
			seg.update(p,seg.mum,-1);
		}
		int gt=seg.position();
		if(gt<seg.mum) seg.fresh(gt,seg.mum);
		//for(int j=0;j<L;j++) printf("%lld ",seg.get(j));puts("");
	}
	//printf("%lld\n",score0);
	int gt=seg.position();
	ll ret=score0;
	for(int i=0;i<gt;i++) ret-=seg.get(i);
	printf("%lld\n",ret);
	return 0;
}

Submission Info

Submission Time
Task E - 花火
User yutaka1999
Language C++ (GCC 4.9.2)
Score 160
Code Size 2400 Byte
Status AC
Exec Time 473 ms
Memory 8532 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:116:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n,&L);
                      ^
./Main.cpp:121:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&t,&p);t--;
                       ^

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 31 ms 3204 KB
sample_02.txt AC 27 ms 3228 KB
sample_03.txt AC 27 ms 3112 KB
subtask1_01.txt AC 33 ms 3120 KB
subtask1_02.txt AC 32 ms 3100 KB
subtask1_03.txt AC 32 ms 3228 KB
subtask1_04.txt AC 31 ms 3112 KB
subtask1_05.txt AC 30 ms 3100 KB
subtask1_06.txt AC 28 ms 3100 KB
subtask1_07.txt AC 28 ms 3100 KB
subtask1_08.txt AC 32 ms 3112 KB
subtask1_09.txt AC 29 ms 3100 KB
subtask1_10.txt AC 33 ms 3220 KB
subtask1_11.txt AC 34 ms 3228 KB
subtask1_12.txt AC 34 ms 3104 KB
subtask1_13.txt AC 32 ms 3100 KB
subtask1_14.txt AC 32 ms 3220 KB
subtask1_15.txt AC 30 ms 3224 KB
subtask1_16.txt AC 29 ms 3104 KB
subtask1_17.txt AC 32 ms 3100 KB
subtask1_18.txt AC 34 ms 3104 KB
subtask1_19.txt AC 32 ms 3108 KB
subtask1_20.txt AC 35 ms 3104 KB
subtask1_21.txt AC 32 ms 3220 KB
subtask1_22.txt AC 32 ms 3220 KB
subtask1_23.txt AC 33 ms 3228 KB
subtask1_24.txt AC 34 ms 3116 KB
subtask1_25.txt AC 31 ms 3104 KB
subtask1_26.txt AC 30 ms 3104 KB
subtask1_27.txt AC 35 ms 3228 KB
subtask1_28.txt AC 32 ms 3108 KB
subtask1_29.txt AC 29 ms 3116 KB
subtask1_30.txt AC 30 ms 3232 KB
subtask1_31.txt AC 32 ms 3236 KB
subtask1_32.txt AC 31 ms 3236 KB
subtask1_33.txt AC 30 ms 3224 KB
subtask1_34.txt AC 31 ms 3232 KB
subtask1_35.txt AC 29 ms 3160 KB
subtask1_36.txt AC 31 ms 3232 KB
subtask1_37.txt AC 29 ms 3032 KB
subtask1_38.txt AC 29 ms 3156 KB
subtask1_39.txt AC 29 ms 3228 KB
subtask1_40.txt AC 29 ms 3116 KB
subtask1_41.txt AC 27 ms 3112 KB
subtask1_42.txt AC 29 ms 3160 KB
subtask2_01.txt AC 387 ms 7340 KB
subtask2_02.txt AC 387 ms 7320 KB
subtask2_03.txt AC 390 ms 7324 KB
subtask2_04.txt AC 390 ms 7340 KB
subtask2_05.txt AC 399 ms 7324 KB
subtask2_06.txt AC 308 ms 6944 KB
subtask2_07.txt AC 207 ms 5280 KB
subtask2_08.txt AC 138 ms 4900 KB
subtask2_09.txt AC 81 ms 5036 KB
subtask2_10.txt AC 86 ms 5032 KB
subtask2_11.txt AC 103 ms 5024 KB
subtask2_12.txt AC 135 ms 5032 KB
subtask2_13.txt AC 285 ms 5416 KB
subtask2_14.txt AC 117 ms 6048 KB
subtask2_15.txt AC 124 ms 5920 KB
subtask2_16.txt AC 129 ms 5800 KB
subtask2_17.txt AC 137 ms 5920 KB
subtask2_18.txt AC 194 ms 6112 KB
subtask2_19.txt AC 56 ms 3728 KB
subtask2_20.txt AC 58 ms 3616 KB
subtask2_21.txt AC 62 ms 3492 KB
subtask2_22.txt AC 68 ms 3616 KB
subtask2_23.txt AC 144 ms 4000 KB
subtask2_24.txt AC 332 ms 7328 KB
subtask2_25.txt AC 332 ms 7328 KB
subtask2_26.txt AC 336 ms 7328 KB
subtask2_27.txt AC 351 ms 7324 KB
subtask2_28.txt AC 384 ms 7320 KB
subtask2_29.txt AC 117 ms 5796 KB
subtask2_30.txt AC 127 ms 5984 KB
subtask2_31.txt AC 139 ms 6040 KB
subtask2_32.txt AC 356 ms 7328 KB
subtask2_33.txt AC 360 ms 7324 KB
subtask2_34.txt AC 135 ms 5920 KB
subtask2_35.txt AC 92 ms 5020 KB
subtask2_36.txt AC 114 ms 5032 KB
subtask2_37.txt AC 246 ms 5408 KB
subtask2_38.txt AC 438 ms 8532 KB
subtask2_39.txt AC 115 ms 6044 KB
subtask2_40.txt AC 53 ms 3736 KB
subtask2_41.txt AC 78 ms 6176 KB
subtask2_42.txt AC 473 ms 8480 KB
subtask2_43.txt AC 415 ms 8484 KB
subtask2_44.txt AC 124 ms 6036 KB
subtask2_45.txt AC 348 ms 8476 KB
subtask2_46.txt AC 76 ms 6048 KB
subtask2_47.txt AC 399 ms 8484 KB
subtask2_48.txt AC 33 ms 5412 KB
subtask2_49.txt AC 27 ms 3108 KB
subtask2_50.txt AC 31 ms 5416 KB