Submission #205132


Source Code Expand

#include "grader.h"
#include <algorithm>
#include <set>
#include <vector>
#define fi first
#define se second
#define rep(i,n) for(int i = 0; i < n; ++i)
#define pb push_back
using namespace std;
typedef pair<int,int> P;
typedef pair<int,P> Q;

const int MX = 100005, INF = 1001001001;

void schedule(int W, int N, int X[], int D[]) {
	vector<P> e;
	rep(i,N) {
		e.pb(P(max(X[i]-D[i]+1,0),1));
		e.pb(P(min(X[i]+D[i],W),-1));
	}
	sort(e.begin(), e.end());
	vector<vector<P> > p(N+1);
	int now = 0, pre = -1;
	e.pb(P(INF,0));
	rep(i,e.size()) {
		if (e[i].fi != pre) {
			p[now].pb(P(pre,e[i].fi));
			pre = e[i].fi;
		}
		now += e[i].se;
	}
	set<P> s;
	s.insert(P(-1,-1));
	s.insert(P(INF,INF));
	Q ans = Q(0,P(0,0));
	for (int i = N; i >= 1; --i) {
		rep(j,p[i].size()) {
			int l = p[i][j].fi, r = p[i][j].se;
			//printf("%d %d\n",l,r);
			set<P>::iterator it = s.lower_bound(P(r,-1));
			int nl = l, nr = r;
			if (it->fi == r) {
				nr = it->se;
				s.erase(it++);
			}
			--it;
			if (it->se == l) {
				nl = it->fi;
				s.erase(it);
			}
			s.insert(P(nl,nr));
			ans = min(ans, Q(nl-nr,P(nl,nr-1)));
		}
		answer(i,ans.se.fi,ans.se.se);
	}
}

Submission Info

Submission Time
Task B - 銀メダル (Silver Medal)
User snuke
Language IOI-Style C++ (GCC 5.4.1)
Score 100
Code Size 1205 Byte
Status AC
Exec Time 189 ms
Memory 9932 KB

Compile Error

./grader.cpp: In function ‘int main()’:
./grader.cpp:19: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./grader.cpp:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 10 / 10 19 / 19 71 / 71
Status
AC × 10
AC × 10
AC × 10
Set Name Test Cases
Subtask1 subtask1/1, subtask1/10, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask2/1, subtask2/10, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Subtask3 subtask3/1, subtask3/10, subtask3/2, subtask3/3, subtask3/4, subtask3/5, subtask3/6, subtask3/7, subtask3/8, subtask3/9
Case Name Status Exec Time Memory
subtask1/1 AC 29 ms 808 KB
subtask1/10 AC 23 ms 808 KB
subtask1/2 AC 87 ms 876 KB
subtask1/3 AC 26 ms 928 KB
subtask1/4 AC 50 ms 808 KB
subtask1/5 AC 45 ms 928 KB
subtask1/6 AC 23 ms 804 KB
subtask1/7 AC 22 ms 856 KB
subtask1/8 AC 36 ms 808 KB
subtask1/9 AC 26 ms 808 KB
subtask2/1 AC 24 ms 872 KB
subtask2/10 AC 28 ms 864 KB
subtask2/2 AC 26 ms 936 KB
subtask2/3 AC 24 ms 920 KB
subtask2/4 AC 25 ms 876 KB
subtask2/5 AC 24 ms 928 KB
subtask2/6 AC 23 ms 864 KB
subtask2/7 AC 25 ms 940 KB
subtask2/8 AC 23 ms 916 KB
subtask2/9 AC 24 ms 928 KB
subtask3/1 AC 156 ms 6816 KB
subtask3/10 AC 175 ms 7832 KB
subtask3/2 AC 162 ms 6812 KB
subtask3/3 AC 189 ms 9932 KB
subtask3/4 AC 187 ms 9884 KB
subtask3/5 AC 189 ms 9884 KB
subtask3/6 AC 181 ms 7836 KB
subtask3/7 AC 171 ms 7836 KB
subtask3/8 AC 170 ms 7832 KB
subtask3/9 AC 166 ms 7836 KB