답안 #275682

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
275682 2020-08-20T07:04:21 Z 최은수(#5098) Happiness (Balkan15_HAPPINESS) C++17
60 / 100
2000 ms 252468 KB
#include"happiness.h"
#include<iostream>
#include<vector>
#include<unordered_map>
#include<algorithm>
#define ep emplace
#define eb emplace_back
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
using namespace std;
typedef long long ll;
typedef pair<int,int>pi;
typedef pair<ll,ll>pl;
const int inf=1e9+7;
const ll INF=1e18;
struct seg
{
	struct node
	{
		ll v,lz;
		int l,r;
		node(){v=lz=0,l=r=0;}
	}st[10000010];
	int tct;
	int rt;
	seg(){rt=tct=0;}
	void upd(int&n,ll s,ll e,ll S,ll E,ll p)
	{
		if(n==0)
			n=++tct;
		if(S<=s&&e<=E)
		{
			st[n].v+=p;
			st[n].lz+=p;
			return;
		}
		ll m=s+(e-s)/2;
		if(S<=m)
			upd(st[n].l,s,m,S,E,p);
		if(E>m)
			upd(st[n].r,m+1,e,S,E,p);
		st[n].v=min(st[st[n].l].v,st[st[n].r].v)+st[n].lz;
		return;
	}
}st;
ll m;
unordered_map<ll,int>mp;
bool init(int coinsCount,ll maxCoinSize,ll coins[])
{
	m=maxCoinSize;
	int n=coinsCount;
	for(int i=0;i<n;i++)
	{
		ll t=coins[i];
		if(mp[t]++==0)
			st.upd(st.rt,1,m,t,t,-t);
		if(t<m)
			st.upd(st.rt,1,m,t+1,m,t);
	}
	return st.st[st.rt].v>=-1;
}
bool is_happy(int event,int coinsCount,ll coins[])
{
	int n=coinsCount;
	if(event==1)
	{
		for(int i=0;i<n;i++)
		{
			ll t=coins[i];
			if(mp[t]++==0)
				st.upd(st.rt,1,m,t,t,-t);
			if(t<m)
				st.upd(st.rt,1,m,t+1,m,t);
		}
	}
	else
	{
		for(int i=0;i<n;i++)
		{
			ll t=coins[i];
			if(--mp[t]==0)
				st.upd(st.rt,1,m,t,t,t);
			if(t<m)
				st.upd(st.rt,1,m,t+1,m,-t);
		}
	}
	return st.st[st.rt].v>=-1;
}

Compilation message

grader.cpp: In function 'int main()':
grader.cpp:16:12: warning: unused variable 'max_code' [-Wunused-variable]
   16 |  long long max_code;
      |            ^~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 144 ms 235124 KB Output is correct
2 Correct 151 ms 235128 KB Output is correct
3 Correct 151 ms 235128 KB Output is correct
4 Correct 161 ms 235128 KB Output is correct
5 Correct 141 ms 235256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 144 ms 235124 KB Output is correct
2 Correct 151 ms 235128 KB Output is correct
3 Correct 151 ms 235128 KB Output is correct
4 Correct 161 ms 235128 KB Output is correct
5 Correct 141 ms 235256 KB Output is correct
6 Correct 154 ms 235256 KB Output is correct
7 Correct 147 ms 235276 KB Output is correct
8 Correct 172 ms 235768 KB Output is correct
9 Correct 177 ms 235640 KB Output is correct
10 Correct 180 ms 235708 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 144 ms 235124 KB Output is correct
2 Correct 151 ms 235128 KB Output is correct
3 Correct 151 ms 235128 KB Output is correct
4 Correct 161 ms 235128 KB Output is correct
5 Correct 141 ms 235256 KB Output is correct
6 Correct 801 ms 243816 KB Output is correct
7 Correct 799 ms 243748 KB Output is correct
8 Correct 796 ms 243904 KB Output is correct
9 Correct 1256 ms 250172 KB Output is correct
10 Correct 1217 ms 250176 KB Output is correct
11 Correct 583 ms 250468 KB Output is correct
12 Correct 586 ms 250452 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 144 ms 235124 KB Output is correct
2 Correct 151 ms 235128 KB Output is correct
3 Correct 151 ms 235128 KB Output is correct
4 Correct 161 ms 235128 KB Output is correct
5 Correct 141 ms 235256 KB Output is correct
6 Correct 154 ms 235256 KB Output is correct
7 Correct 147 ms 235276 KB Output is correct
8 Correct 172 ms 235768 KB Output is correct
9 Correct 177 ms 235640 KB Output is correct
10 Correct 180 ms 235708 KB Output is correct
11 Correct 801 ms 243816 KB Output is correct
12 Correct 799 ms 243748 KB Output is correct
13 Correct 796 ms 243904 KB Output is correct
14 Correct 1256 ms 250172 KB Output is correct
15 Correct 1217 ms 250176 KB Output is correct
16 Correct 583 ms 250468 KB Output is correct
17 Correct 586 ms 250452 KB Output is correct
18 Correct 1563 ms 244640 KB Output is correct
19 Correct 1599 ms 244796 KB Output is correct
20 Execution timed out 2082 ms 252468 KB Time limit exceeded
21 Halted 0 ms 0 KB -